小程序报错WebviewId xxx not found

在Android真机环境下测试时出现一下错误:OnWebviewEvent: … WebviewId xxxx not found,而且页面也不进行跳转,而且该页面所有按钮点击时候都会报错:页面中不存在对应事件。

错误分析:

  • 小程序页面场景:

启动之后根据用户状态判断用户要进入哪个页面,其中有一套页面时Tabbar页面。

根据小程序API,普通页面跳转用redirectTo();Tabbar页面切换使用switchTab();

  • 解决过程

1. 页面场景切换导致的问题,首先到开发文档中找到小程序的页面生存周期

对照业务流程,插入调试点测试,页面正常执行,但是小程序后台再到前台页面不进行任何跳转,也没有任何动作。

无从下手!

2. 非正常问题用非正常思路。

测试另一组非tabbar页面后台再到前台能不能正常跳转,实际测试发现可以正常执行,也能正常跳转。

所以很大可能就是switchTab这里存在问题。

3. 官方文档中是这么描述的

好像也没什么毛病。那就到小程序基础库的源代码找找看。

但是,加代码混淆的压缩代码,实在是难以深究。只好跟踪梳理WAServer.js文件,找出这个异常是由onPageReload方法抛出的。是App生命周期的一个函数,这样也正好解释了为什么小程序放入系统后台,重新进入会出现这个问题。
  • 问题不能直接解决,暂时只能跳过问题解决了。

页面跳转一共有navigateTo、redirectTo、reLaunch、switchTab、navigateBack,五个接口,同时

所以要进入tabbar的一套页面可以尝试使用reLaunch接口实现。

  • 测试reLaunch接口能不能解决问题。

替换原来的switchTab方法,重复刚才出错的应用场景,发现问题不再复现。

暂时解决了这个问题,但从根本上解决还需要等下一班基础库更新了。

You Might Also Like
2 Comments
发表评论

%d 博主赞过: