收藏
回答

onPageNotFound使用webview的navigateTo跳转到不存在页面无法触发

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.miniProgram.navigateTo 微信iOS客户端 7.0.13 2.11.3

小程序 webview 里的 wx.miniProgram.navigateTo,如果跳转到一个不存在的页面,没有触发 App 中的 onPageNotFound,也没有报错。

请问这个是否符合预期?如果本身设计就是这样,这个场景完全捕获不到异常,不利于监控页面路径调整是否会引入bug,是否可以优化提供捕获报错的方式?

我用开发者工具(mac版1.03.2006090)和手机(iOS 13.5.1 微信版本7.0.13)测试,都是不会触发 onPageNotFound 也没有抛错。


附上:小程序关键代码

app.js

App({
  onLaunch: function () {
  },
  onPageNotFound(e) {
    console.log('page not found', e)
  },
  onUnhandledRejection(e) {
    console.log('onUnhandledRejection', e)
  }
})

app.json

{
  "pages": [
    "index/index",
    "webview/webview",
    "index/test"
  ],
...  
}


webview访问的页面

<html>
  <head>
    <meta charset="UTF-8">
    <title>测试跳转小程序页面</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
   </head>
    <body>
      <div>测试</div>
      	<button onclick="jumpToTest()">跳转正确</button>
      	<button onclick="jumpToError()">跳转错误链接</button>
    </body>
    <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
    <script type="text/javascript">
    	function jumpToTest() {
          console.log('test')
          wx.miniProgram.navigateTo({ url: '/index/index' })
        }
        function jumpToError() {
          wx.miniProgram.navigateTo({ url: '/index/error' })
        }
      </script>
    </html>
        
        
回答关注问题邀请回答
收藏

2 个回答

  • 2021-02-18

    这个有后续吗

    2021-02-18
    有用
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2020-07-06

    你好,使用代码片段怎么操作复现这个流程呢?

    2020-07-06
    有用
    回复 4
    • w_西辰
      w_西辰
      2020-07-06
      切换到 webview 这个编译模式,然后点击 ”小程序跳转不存在页面“ 可以复现
      2020-07-06
      回复
    • w_西辰
      w_西辰
      2020-07-17
      你好,请问你们定位到问题了吗?
      2020-07-17
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2020-07-17回复w_西辰
      还在确认中哈
      2020-07-17
      回复
    • w_西辰
      w_西辰
      2020-07-17回复疯狂的小辣椒
      收到,辛苦啦~有进展请同步
      2020-07-17
      回复
登录 后发表内容
问题标签