在2022年之前,想要在H5关上小程序只须要在平台上设置urlscheme即可,然而自 2022 年 4 月 11 日起,URL Scheme有效期最长 30 天,不再反对永恒无效的URL Scheme、不再辨别短期无效URL Scheme与长期有效URL Scheme。若在微信外关上,用户能够在浏览器页面点击进入小程序。每个独立的URL Scheme被用户拜访后,仅此用户能够再次拜访并关上对应小程序,其余用户无奈再次通过雷同URL Scheme关上该小程序。 在本次规定调整失效前曾经生成的URL Scheme,如果有效期超过30天或长期会被降级为30天无效,只能被1个用户拜访,开始工夫从调整日期开始计算。【官网文档】
然而官网提供了动静获取urlscheme办法
步骤如下:
- 1:获取access_token
- 2:依据access_token获取urlscheme
3:依据urlscheme实现H5跳转小程序
具体实现
1. 通用的调用接口办法
/** * curl */public function httpRequest($url, $format = 'get', $data = null, $headerArray = []){ //设置头信息 $curl=curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if ($format == 'post') { //post传值设置post传参 curl_setopt($curl, CURLOPT_POST, 1); if ($data) { $data = json_encode($data); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); if ($headerArray) { curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray); } $data=json_decode(curl_exec($curl), true); curl_close($curl); //返回接口返回数据 return $data;}
2. 获取access_token文档:【获取access_token】
$appId = 'XXX';$appsecret = 'XXX';$data = $this->httpRequest( 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appId.'&secret='.$appsecret, 'get', null, array("Content-type:application/json;","Accept:application/json"));$accessToken = isset($data['access_token']) ? $data['access_token'] : '';
3:依据access_token获取urlscheme【获取urlscheme】
$data = $this->httpRequest( 'https://api.weixin.qq.com/wxa/generatescheme?access_token='.$accessToken, 'post', [ 'jump_wxa' => [ 'path' => "/pages/index/index",//跳转小程序地址 'query' => ""//跳转小程序额定参数 ], 'expire_type' => 0 ]);$openlink = isset($data['openlink']) ? $data['openlink'] : '';
4:依据urlscheme跳转小程序
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script><script>window.location.href = openlink;</script>