收藏
回答

navigateBack with an unexist webviewId.


很多bug在小程序开发者工具上没有问题,但是在真机上就。。。。


比如说经常出现的navigateBack with an unexist webviewId.    

 这个在iOS系统下发生的很频繁。后来我就去找。

发现是我在我的app.js里面调用了relaunch。然后跳转的页面又redirect下一个页面了。所有页面的判断是在onshow里面做的。

逻辑是没问题的。就是跳转不过去。

解决办法就是加了setTimeout。并且这个定时不能太小,比如说几百毫秒都不行,至少一秒钟才行。我在开发者 论坛上看到有人至少2秒钟。


我就怀疑是跟页面的跳转的层级有关系,你的层级越多,那么定时应该定的越长一点。官方也不推荐在app.js里面用redirectto。然后navigateto有限制是五个层级。relaunch又有点问题。那基本上这几个跳转的API没了。。。。哎。。

我现在很忧桑。--!

最后一次编辑于  2017-06-23
回答关注问题邀请回答
收藏

8 个回答

  • 洋葱头
    洋葱头
    2017-06-22

    抱歉 没太明白


    能否写一个流程图?

    2017-06-22
    有用
    回复
  • 杉杉是肉包子
    杉杉是肉包子
    2017-06-22

    没人回复吗?我自己顶

    2017-06-22
    有用 2
    回复
  • 猴生人
    猴生人
    04-09

    2024依然存在

    04-09
    有用
    回复
  • DX3906
    DX3906
    2023-01-05

    有用,谢谢

    2023-01-05
    有用
    回复
  • Wayne ᯤ⁶ᴳ
    Wayne ᯤ⁶ᴳ
    2021-12-23

    顶起来,昨天研究了好长时间,今早上一看你的文档解决了,感谢

    2021-12-23
    有用
    回复
  • Luosky
    Luosky
    2018-02-01

    mark

    2018-02-01
    有用
    回复
  • 杉杉是肉包子
    杉杉是肉包子
    2017-06-23

    现在我强制解决的办法,比较low。就是把两个页面合并了,直接用wx;if 来进行判断了,我就不写什么跳转了,= = 办法有点low。

    2017-06-23
    有用
    回复
  • 杉杉是肉包子
    杉杉是肉包子
    2017-06-23


    然后我在小程序论坛上搜到,wx.reLaunch 在onShow或者onLoad里面跳转的时候,容易在真机上出现

    navigateBack with an unexist webviewId.   确实,我真机上也出现了,以IOS出现的频率最高, 。 于是我加了setTimeout延时,确实这个情况有改善。但是还是会有这个情况发生。我的代码具体是这么写的:

     setTimeout(function() {

              wx.redirectTo({

                url: '../pay/pay',

                success: function () { console.log("navigateTo to pay success") },

                fail: function (err) { console.log("navigateTo to pay fail" + JSON.stringify(err)) }

              })

            }, 1000)

    在真机上我console出来,是success的,但是页面木有跳转


    2017-06-23
    有用
    回复
登录 后发表内容