背景
业务需求:uniapp开发时,App跳转小程序,小程序跳转小程序。
实现方法
1. uni.navigateToMiniProgram(小程序跳转小程序)
uni-app官方文档(uni.navigateToMiniProgram)
uni.navigateToMiniProgram({
appId:""// 微信小程序id
path: "", // 小程序页面路径,不填默认首页
extraData:{
'data1': 'test'
}, //传递给页面的参数
success(res) {
console.log("跳转成功");
},
fail(res) {
console.log(res, "调用失败");
}
});
2. launchMiniProgram实现(App跳转小程序)
官方文档(HTML5+ API launchMiniProgram)
plus.share.getServices(
(res) => {
let sweixin = res.find((i) => i.id === "weixin");
if (sweixin) {
sweixin.launchMiniProgram(
{
id: "", // 要跳转小程序的原始ID
path: "", // 可带参数
type: 0, // 微信小程序版本类型可取值: 0-正式版; 1-测试版; 2-体验版。 默认值为0。
},
// 目标小程序点击返回App后执行的回调,在此接收微信小程序传递的参数
(res2) => {
console.log(typeof res2, res2);
// res2是微信小程序传递回来的参数 类型为string 需转化为js对象使用
let result = JSON.parse(res2);
console.log(result);
// 拿到参数后执行你需要的逻辑
},
(err2) => {
console.log(err2);
}
);
} else {
showToast("当前环境不支持微信操作!");
}
},
(err) => {
console.log(err);
}
);
3. 微信官方URL Scheme跳转小程序
- 明文URL Scheme [官方文档](开放能力 / 获取小程序链接 / 获取 URL Scheme (qq.com))
获取方式
开发者无需调用平台接口,在MP平台->账号设置->基本设置->隐私与安全->明文Scheme拉起此小程序声明配置后,可自行根据如下格式拼接appid和path等参数,作为明文 URL Scheme 链接。
// 跳转链接
window.location.href = 'weixin://dl/business/?appid=*APPID*&path=*PATH*&query=*QUERY*&env_version=*ENV_VERSION*';
// 链接参数定义如下:
// APPID:通过明文 URL Scheme 打开小程序的 appid ;
// PATH:通过明文 URL Scheme 打开小程序的页面 path ,必须是已经发布的小程序存在的页面,不可携带 query;
// QUERY:通过明文 URL Scheme 打开小程序的 query ,最大512个字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~%`,需要url_encode;
// ENV_VERSION:要打开的小程序版本,正式版为release,体验版为trial,开发版为develop,仅在微信外打开时生效。注意:若不填写,则默认打开正式版小程序。
- 加密URL Scheme(个人建议由后端配合生成,前端只做链接跳转即可) [官方文档](开放能力 / 获取小程序链接 / 获取 URL Scheme (qq.com))
具体步骤如下:
(1)通过微信官方接口获取到access_token
接口:
GET https://api.weixin.qq.com/cgi-bin/token
测试结果:
(2)获取URL Scheme
接口:
POST https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN
测试结果:
前端H5实现跳转小程序代码:
window.location.href = "weixin://dl/business/?t=zBmSukOdDav"
注:文章仅供参考,欢迎各位大佬多多指教……
每篇一点毒鸡汤
在喜欢的状态里生活,做你自己,生活不在于富足,而在于知足。