多个小程序同步登录【已实现】
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自动登录的效果】。。
}
})
[代码]