IOS 下 navigateToMiniProgram 成功后 小程序 假死
发布于 7 年前 作者 junshi 17504 次浏览 来自 问答

功能:

小程序A 打开小程序B,在关闭小程序B或是返回到小程序A后;小程序A自动跳转到小程序A的webview页

实现与问题:

小程序A 中wx.navigateToMiniProgram 在其success 回调中 navigateTo 到 webview 页面;导致小程序卡死不能点击右上角关闭;

环境:

IOS 下

基础库版本 1.9.94

3 回复

麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(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

        });

    }

}

回到顶部