功能:
小程序A 打开小程序B,在关闭小程序B或是返回到小程序A后;小程序A自动跳转到小程序A的webview页 ;
实现与问题:
小程序A 中wx.navigateToMiniProgram 在其success 回调中 navigateTo 到 webview 页面;导致小程序卡死不能点击右上角关闭;
环境:
IOS 下
基础库版本 1.9.94
麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题
机型: iphone6p iphone7 iphone8
微信版本:6.6.6
这个涉及到webview内页,小程序A ,和小程序B ,业务比较复杂;代码片段不好提供;我可以在评论区提供下核心代码:小程序A 首页js
// 默认进来根据option参数判断是否跳小程序
onLoad: function (option) {
// 开始小程序 的跳转
let goUrl = option.url;
let isToTaolibao = /^\/\/wxapp/.test(goUrl);
let sessionId = getApp().globalData.sessionId;
let obj = {}, parm = ‘?’;
for (var o in option) {
if (o != ‘url’) {
let key = o;
obj[o] = option[o];
parm += o + ‘=’ + option[o];
}
}
obj[‘sessionId’] = sessionId;
// 跳淘礼包
if (isToTaolibao) {
let goMiniUrl = goUrl.replace(/\/\/wxapp/, ‘’);
goMiniUrl += parm;
this.goTaolibao(goMiniUrl, obj);
};
},
// 跳转小程序B
goTaolibao: function (opt, obj) {
wx.navigateToMiniProgram({
appId: config.taolibaoAppid, // 正式版
path: opt,
extraData: obj,
envVersion: ‘trial’,
success(res) {
// 打开成功
console.log(‘跳转成功’);
},
complete () => {
this.goWebview();
},
fail(err) {
console.log(err);
}
});
},
// 跳转成功后,小程序A后台自动跳转webview页(假死现象应该是在这一步产生的,但这也非必现,IOS 下 10次有6,7次出现)
goWebview: function () {
// 解决淘礼包小程序返回试驾夺宝 页面堆栈数过高 打开不了其他页面
var pages = getCurrentPages().length;
if (pages > 1) {
wx.redirectTo({
url: this.data.navigateSJDB
});
} else {
wx.navigateTo({
url: this.data.navigateSJDB
});
}
}