微信浏览器中实现跳转
使用微信官方接口 wx-open-launch-weapp(该方法只开放给已认证的服务号或者小程序云开发的静态网站托管绑定的域名下的网页)
案例代码
<wx-open-launch-weapp
id="launch-btn"
username="gh_xxxxxxxx"
path="pages/home/index?user=123&action=abc"
>
<script type="text/wxtag-template">
<style>.btn { padding: 12px }</style>
<button class="btn">打开小程序</button>
</script>
</wx-open-launch-weapp>
<script>
var btn = document.getElementById('launch-btn');
btn.addEventListener('launch', function (e) {
console.log('success');
});
btn.addEventListener('error', function (e) {
console.log('fail', e.detail);
});
</script>
相关文档
目录 | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html#21
外部浏览器中实现跳转,需要使用URL Scheme的方式来实现(URL Scheme的有效期只有30天)
前端在获取到URL Scheme后通过以下代码就可以实现跳转
文档点击这里 URL Scheme文档
location.href = 'weixin://dl/business/?t= *TICKET*'
- 注意: 获取URL Scheme的方式有两种
URL Scheme获取帮助文档
方式一:小程序管理后台工具生成
一、生成步骤
1、 地址
微信公众平台
2、 扫码登录
3、 登陆后进入首页
「工具」(在右上角)–「生成 URL Scheme」
4、 进入生成 URL Scheme
5、 生成 URL Scheme
(1) 参数说明
属性 | 值 | 说明 |
有效期 | 到期失效(可以自己选择失效时间)、永久有效 | 生成的 scheme 码类型 |
小程序页面路径 | 示例:pages/index/index | 通过 scheme 码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query。path 为空时会跳转小程序主页。 |
启动query参数 | 示例:channel=test&ad=1001 | 通过 scheme 码进入小程序时的 query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~ |
(2) 示例
1) 生成
2) 生成结果
二、参考文档
获取 URL Scheme
方式二:服务器端(接口)方式
一、 说明
获取小程序 scheme 码,适用于短信、邮件、外部网页、微信内等拉起小程序的业务场景。通过该接口,可以选择生成到期失效和永久有效的小程序码,目前仅针对国内非个人主体的小程序开放,详见获取 URL scheme。
调用方式:
- HTTPS 调用
- 云调用
二、 HTTPS 调用
1、接口地址
地址 | 请求方式 |
https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN | POST |
2、请求参数及说明
(1) 请求参数
属性 | 类型 | 默认值 | 必填 | 说明 |
access_token | string | 是 | 接口调用凭证 | |
jump_wxa | Object | 否 | 跳转到的目标小程序信息。 | |
is_expire | boolean | false | 否 | 生成的 scheme 码类型,到期失效:true,永久有效:false。 |
expire_time | number | 否 | 到期失效的 scheme 码的失效时间,为 Unix 时间戳。生成的到期失效 scheme 码在该时间前有效。最长有效期为1年。生成到期失效的scheme时必填。 |
(2) jump_wxa 的结构
属性 | 类型 | 默认值 | 必填 | 说明 |
path | string | 是 | 通过 scheme 码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query。path 为空时会跳转小程序主页。 | |
query | string | 是 | 通过 scheme 码进入小程序时的 query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~ |
3、返回值
(1) 返回值说明
属性 | 类型 | 说明 |
errcode | number | 错误码 |
errmsg | string | 错误信息 |
openlink | string | 生成的小程序 scheme 码 |
(2) errcode合法值说明
值 | 说明 |
40002 | 暂无生成权限 |
40013 | 生成权限被封禁 |
85079 | 小程序未发布 |
40165 | 参数path填写错误 |
40212 | 参数query填写错误 |
85401 | 参数expire_time填写错误,时间间隔大于1分钟且小于1年 |
44990 | 生成Scheme频率过快(超过100次/秒) |
85400 | 长期有效Scheme达到生成上限10万 |
45009 | 单天生成Scheme数量超过上限50万 |
4、示例:
(1)请求
{
"jump_wxa":
{
"path": "/pages/publishHomework/publishHomework",
"query": ""
},
"is_expire":true,
"expire_time":1606737600
}
(2)返回
{
"errcode": 0,
"errmsg": "ok",
"openlink": Scheme,
}
三、 云调用
1、接口方法
方法 | 说明 |
openapi.urlscheme.generate | 需在 config.json 中配置 urlscheme.generate API 的权限,详情请参考官方文档 |
2、请求参数
(1)请求参数
属性 | 类型 | 默认值 | 必填 | 说明 |
jumpWxa | Object | 否 | 跳转到的目标小程序信息。 | |
isExpire | boolean | false | 否 | 生成的 scheme 码类型,到期失效:true,永久有效:false。 |
expireTime | number | 否 | 到期失效的 scheme 码的失效时间,为 Unix 时间戳。生成的到期失效 scheme 码在该时间前有效。最长有效期为1年。生成到期失效的scheme时必填。 |
(2)jumpWxa 的结构
属性 | 类型 | 默认值 | 必填 | 说明 |
path | string | 是 | 通过 scheme 码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query。path 为空时会跳转小程序主页。 | |
query | string | 是 | 通过 scheme 码进入小程序时的 query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~ |
值 | 说明 |
40002 | 暂无生成权限 |
40013 | 生成权限被封禁 |
85079 | 小程序未发布 |
40165 | 参数path填写错误 |
40212 | 参数query填写错误 |
85401 | 参数expire_time填写错误,时间间隔大于1分钟且小于1年 |
44990 | 生成Scheme频率过快(超过100次/秒) |
85400 | 长期有效Scheme达到生成上限10万 |
45009 | 单天生成Scheme数量超过上限50万 |
3、返回值
(1)返回值说明
属性 | 类型 | 说明 |
errcode | number | 错误码 |
errmsg | string | 错误信息 |
openlink | string | 生成的小程序 scheme 码 |
(2)errcode合法值说明
值 | 说明 |
40002 | 暂无生成权限 |
40013 | 生成权限被封禁 |
85079 | 小程序未发布 |
40165 | 参数path填写错误 |
40212 | 参数query填写错误 |
85401 | 参数expire_time填写错误,时间间隔大于1分钟且小于1年 |
44990 | 生成Scheme频率过快(超过100次/秒) |
85400 | 长期有效Scheme达到生成上限10万 |
45009 | 单天生成Scheme数量超过上限50万 |
4、示例
(1)请求
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.urlscheme.generate({
"jumpWxa": {
"path": '/pages/publishHomework/publishHomework',
"query": ''
},
"isExpire": true,
"expireTime": 1606737600
})
return result
} catch (err) {
return err
}}
(2)返回
{
"errcode": 0,
"errmsg": "ok",
"openlink": Scheme,
}
四、 其他说明
如有其他问题请参考官方文档:文章来源:https://www.toymoban.com/news/detail-416733.html
urlscheme.generate | 微信开放文档文章来源地址https://www.toymoban.com/news/detail-416733.html
到了这里,关于H5页面跳转微信小程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!