动态生成URL Scheme并跳转到小程序

之前在h5中打开小程序可以在微信公众平台设置URL Scheme,
自 2022 年 4 月 11 日起,URL Scheme有效期最长 30 天,不再支持永久有效的URL Scheme、不再区分短期有效URL Scheme与长期有效URL Scheme。若在微信外打开,用户可以在浏览器页面点击进入小程序。每个独立的URL Scheme被用户访问后,仅此用户可以再次访问并打开对应小程序,其他用户无法再次通过相同URL Scheme打开该小程序。 在本次规则调整生效前已经生成的URL Scheme,如果有效期超过30天或长期会被降级为30天有效,只能被1个用户访问,开始时间从调整日期开始计算。官方文档

获取URL Scheme,主要分为两步

一、 获取ACCESS_TOKEN 文档
通过微信提供接口携带appid和appsecret请求获取到token

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

二、获取URL Scheme 文档
通过微信提供接口携带ACCESS_TOKEN获取到URL

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

参数:

jump_wxa:{
	path:"/pages/index/index"   //跳转到小程序的目标地址
	query:""   //跳转携带的参数
}

请求成功之后就可以得到一个路径,通过location.href跳转即可

### 使用 URL Scheme 实现 H5 页面跳转微信小程序 #### 构建 URL Scheme 字符串 为了使 H5 页面能够成功跳转到指定的小程序,需构建特定格式的 URL Scheme 字符串。该字符串应包含目标小程序的相关参数,如 `appid` 和路径等。 对于希望调起的小程序而言,URL Scheme 的基本结构如下: ``` weixin://dl/business/?t=xxxxxx&state=self&query=%7B%22path%22%3A%22pages/index/index%22,%20%22query%22%3A%22%22,%20%22envVersion%22%3A%22release%22%7D ``` 其中 `%7B...%7D` 是 JSON 对象经过 URL 编码后的表示形式,具体字段解释为: - path: 小程序页面路径 - query: 查询参数(可选) - envVersion: 发布版本,默认为 release 表示正式版[^1] #### JavaScript 跳转逻辑实现 当用户点击链接或触发相应事件时,可通过 JavaScript 动态生成执行上述 URL Scheme 进行跳转操作。下面是一个简单的例子来展示这一过程: ```javascript function jumpToMiniProgram(appId, pagePath) { const urlScheme = encodeURIComponent(JSON.stringify({ "path": pagePath, "envVersion": "release" })); window.location.href = `weixin://dl/business/?t=${appId}&state=self&query=${urlScheme}`; } ``` 此函数接收两个参数:`appId` 即要打开的小程序的应用 ID;`pagePath` 代表想要访问的具体页面地址。注意这里假设已经获得了合法有效的 appId 值。 另外,在某些情况下可能还需要处理授权问题,比如获取 access token 来完成进一步的身份验证流程。不过如果是在已配置好免鉴权能力的情况下,则可以直接使用以上方法进行跳转而无需额外考虑权限事宜[^2]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值