最近几天被这个公众号和小程序的跳转弄得好烦,由于公众号用的是插件,没有办法直接跳转小程序。

一开始想着用第三方平台做公众号菜单,但是插件的功能又被替换了无法使用。

思前想后,实在没有办法弄了,只能选择通过H5页面跳转。

但是跳转需要通过AccessToken生成URL Scheme,但是AccessToken又需要Appid和AppSecret。

所以就需要分两步走:

1、通过Appid和AppSecret获取AccessToken

请求地址(GET方式):

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

iOS开发获取当前的UIViewController 获取app url scheme_微信

$appid = 'Appid';
//登陆mp.weixin.qq.com获取.
$app_secret = 'AppSecret';
//登陆mp.weixin.qq.com获取.
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' .$appid. '&secret=' .$app_secret;
//开发文档中auth.getAccessToken的请求地址
$token = file_get_contents($url);
//利用file_get_contents函数获取Token,当然也可以自己修改用Curl方式获取
$decode = json_decode($token);
//返回的是json,需要先decode
$access_token = $decode->access_token;
//取出AccessToken的值
$echo $access_token;
//输出AccessToken的值

2、通过AccessToken获取Openlink

请求地址(POST方式):

https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN

iOS开发获取当前的UIViewController 获取app url scheme_微信小程序_02

iOS开发获取当前的UIViewController 获取app url scheme_json_03

$link_url = 'https://api.weixin.qq.com/wxa/generatescheme?access_token='.$access_token;
  //urlscheme.generate请求地址
     $link_data = '{
          "jump_wxa":
              {
                  "path": "/pages/publishHomework/publishHomework",
                  "query": "",
              },
              "expire_time":1606737600
              }';
  //path为小程序页面路径,expire_time为scheme码的失效时间
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $link_url);
      curl_setopt($ch, CURLOPT_POST, true);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $link_data);
      curl_setopt($ch, CURLOPT_REFERER, $link_url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_TIMEOUT, 20);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
      $resdata = curl_exec($ch);
      curl_close($ch);
      $data_back = json_decode($resdata);
      $open_link = $data_back->openlink;
      echo $open_link;
      //使用Curl提交Post数据,返回数据需要先json decode,然后获取Openlink并输出

3、自动跳转到小程序

iOS开发获取当前的UIViewController 获取app url scheme_json_04

为什么先放这个截图,是因为H5跳转小程序肯定会弹出这个提示的,而且这个提示是官方的限制,是没有办法取消的。

至少我是没办法

header("Location: $open_link");

文章到这里就已经结束了,自己新建一个PHP文件,修改好保存并上传到服务器即可。

页面电脑端是无法访问的,只能通过微信打开并跳转。

当然如果你能通过Universal Links校验就当我没说。

4、不想动手?那就直接用下面这个吧。

城通网盘 密码7724