操作流程:
1.创建一个包含web-view的page
2.绑定 binderror事件
3.在事件中弹出提示框,提示加载出错,并将当前url导向上一个未出错的url
4.在web-view加载的页面中点击可报错的页面
5.弹出错误提示,确认后页面自动加载到上一个正常页面
6.自此以后,不管切换到哪个页面(小程序没有relaunch),都会触发binderror事件
切换了多个基础库均是此情况
相关代码 https://gitee.com/shirne/miniprogram-webview/tree/v0.0.1/
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
我遇到过,是在vue单页面应用中出现的,找了半天,突然想到路由跳转时其实是nginx指向了404页面,然后定义404为index.html的,那么这个时候就会触发binderror事件,而且是每个路由切换时都会触发,目前我用的解决办法是使用try_files先检测一遍,实在没找到才跳转404定义的index.html,然后就不再促发binderror了,我的情况是这样,说出来指不定能对你有用呢,谁知道呢,哈哈哈。
大致的思路是下面《参考的是https://www.cnblogs.com/darkspark/p/16692745.html》
server {
listen 8080;
root /blog/
location /your_project_name/ {
root /app/html;
index index.html index.htm;
try_files $uri $uri/ /your_project_name/index.html ;
error_page 404 /your_project_name/index.html;
}
location /images/ {
root /blog;
}
}
https://developers.weixin.qq.com/s/UDMutpm87sqq
1. 内部页底部导航中的首页,产品中心,关于我们,新闻 都是正常页面,随便点击几个,会触发load事件.
2. 再点击 产品中心,里面的详情页是错误页,会报错,报错之后没的relaunch,通过setData重新设置了web-view的src为正常页
3. 这之后再点击回其它原先正常的页面,不会再触发load事件,而是触发error事件