技术栈 : uniapp ,vue2 ,小程序
第一步 :先在微信开放平台申请移动应用
第二步 :将移动应用关联到需要跳转到的小程序
第三步 :在项目manifest.json里面的App模块配置中勾选Share(分享),并填写对应的AppID,如果之前没有配置这个模块,那就需要在配置完后重新打个基座包再运行,不然app的配置不会更新
第四步 :将下面这串代码的参数成自己的,然后执行就能从app调转至小程序了
plus.share.getServices(res => { this.sweixin = res.find(i => i.id === 'weixin') if (this.sweixin) { // 分享跳转到微信小程序 this.sweixin.launchMiniProgram({ id: original_id, // 关联微信小程序的原始ID("g_"开头的字符串) path: path, // 打开小程序的页面路径,不传默认跳转首页 type: 0 // 微信小程序版本类型,可取值: 0-正式版; 1-测试版; 2-体验版。 默认值为0。 }, res => { console.log('成功唤起微信小程序'); }, err => { console.log('失败'); }) } else { // 没有获取到微信分享服务 } }, err => { // 获取分享服务列表失败 })
注 :小程序是无法跳转至任何App的 ,只能是从App跳转过来后,再返回到原来的App
此功能需要用户主动触发才能打开 APP,所以不由 API 来调用,需要用?open-type
?的值设置为?launchApp
?的?button?组件的点击来触发。
当小程序从 APP 打开的场景打开时(场景值 1069),小程序会获得返回 APP 的能力,此时用户点击按钮可以打开拉起该小程序的 APP。即小程序不能打开任意 APP,只能?跳回
?APP。
官方文档 :打开 App | 微信开放文档
<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">返回APP</button>
app-parameter :可以将参数传到app
在app.vue? 的 onLaunch 中监听
onLaunch: function() {
// 检测启动参数
plus.globalEvent.addEventListener('newintent', (e)=>{
// 判断是不是从小程序返回来的
if(plus.runtime.launcher == 'miniProgram'){
// 判断小程序传过来的参数
if(plus.runtime.arguments == 1){
uni.redirectTo({
url:'/pages/order/mineOrderList/mineOrderList?type=2'
})
}
}
});
}