在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>