H5实现生成urlscheme并从H5跳转到小程序

news/2024/7/20 2:39:13 标签: 小程序, 前端

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

http://www.niftyadmin.cn/n/1583442.html

相关文章

五个UICollectionView常用的知识点

一&#xff1a;监听滚动停止的时刻 二、监听reloadData刷新列表完毕的时机 三、自由拖拽 四、瀑布流 五、浮动的Header一&#xff1a;监听滚动停止的时刻 场景1、手动拖拽屏幕停止 场景2、调用scrollToRow停止 场景3、调用setContentOffset停止 self.tableView.setContentOffse…

js实现电子签名功能

一&#xff1a;elesigncode拓展包下载 1&#xff1a;github地址&#xff1a;https://github.com/yinhui1129754/elesigncode 2&#xff1a;npm下载&#xff1a; npm install elesigncode 二&#xff1a;elesigncode常用方法 方法名称描述参数返回值init初始化方法无无undo…

如何让自己看起来更专业?前端程序员必须了解的几个“词语”

有不少前端开发工程师&#xff0c;可能并不清楚下面的部分词语&#xff0c;但是在实战中其实都在使用着它们。 明确一下这些词语和概念没有什么不好~一方面能够让自己能够更专业的谈论知识&#xff0c;另一方面&#xff0c;在面试的时候也能够应对一些“爱问前端名词”的面试官…

php实现RSA的加密解密和签名验签功能

一&#xff1a;生成RSA的私钥和公钥 1&#xff1a;RSA私钥生成 $resource openssl_pkey_new(); openssl_pkey_export($resource, $privateKey); echo($privateKey); 2:RSA公钥生成 $resource openssl_pkey_new(); $detail openssl_pkey_get_details($resource); $public…

iOS 视频剪辑

2019独角兽企业重金招聘Python工程师标准>>> 1、ICGVideoTrimmer 2、https://pan.baidu.com/s/1dIN5jZxKrp-vpbRv96SdUg 3、视频剪辑和视频配音 JWVideoCutDubManage 转载于:https://my.oschina.net/wenchengxu123/blog/3008919

windows下实现使用make命令

一&#xff1a;下载MinGW MinGW下载地址&#xff1a;https://sourceforge.net/projects/mingw/files/latest/download?sourcefiles 二&#xff1a;安装MinGW 1&#xff1a;运行下载下来的mingw-get-setup.exe文件,然后点击Install 2&#xff1a;右侧全部勾选&#xff0c;然…

windows下命令行乱码解决

一&#xff1a;现象 有时候我们在cmd命令行执行命令时发现有乱码&#xff0c;如图 二&#xff1a;解决方案&#xff1a; 1&#xff1a;临时解决命令行乱码问题 在命令行执行CHCP查看当前命令行活动代码页编号 一些常见的代码页编号含义如下&#xff1a; 65001 UTF-8代码页…

Unity组件:Lens Flare 镜头光晕

Lens Flares simulate the effect of lights refracting inside camera lens. They are used to represent really bright lights or, more subtly, just to add a bit more atmosphere to your scene. 镜头光晕 模拟相机镜头内的折射光线的效果。它们被用来代表真正的明亮的灯…