多个小程序同步登录【已实现】
1、需求
有同一个主体的2个小程序,分别是小程序A和小程序B,现在需要小程序A登录后,点击某个按钮/页面跳转到小程序B,实现小程序B登录。
2、思路
小程序A通过wx.navigateToMiniProgram
方法将extraData
传递给小程序B,小程序B在app.js
中的onLaunch
里面接收到extraData
的值,从而实现登录。
3、实现
- 小程序A中的
wx.navigateToMiniProgram
方法
function syncLogin(appId,userId){
wx.navigateToMiniProgram({
appId: appId,
path: '', // 打开小程序B页面的路径,如果为空则打开首页
extraData: {
usrId: userId, // 需要传递给小程序B的数据
},
envVersion: 'develop', //开发版
// envVersion: 'trial', //体验版
// envVersion: 'release', //正式版
})
}
小程序B中模拟测试
在小程序B开发工具中,点击编译,进入场景选择【1037:从小程序进入】,并将`` AppID ``和`` extraData ``填上,一般都是`` json ``字符串。
在小程序B中的app.js
中的onLaunch
里面通过options
接收到extraData
的值,用console.log
打印验证。
App({
// 公共配置
data: {
},
// onLaunch:当小程序加载完毕后就执行的方法
onLaunch: function (options) {
// 得到进入场景值
console.log('options.from:' + options.referrerInfo.extraData.userId);
// ...根据用户ID,就可以实现【小程序A在登录状态下点击跳转到小程序B自动登录的效果】。。
}
})