yorick
yorick
  • 发布:2 天前
  • 更新:2 天前
  • 阅读:30

【报Bug】uni.webView.navigateTo 无法跳转[demo已上传]【已解决】

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.14.6

HBuilderX类型: Alpha

HBuilderX版本号: 3.0.7

第三方开发者工具版本号: 微信开发者工具 1.02.2009301

基础库版本号: 2.14.3

项目创建方式: HBuilderX

示例代码:

uni.webView.navigateTo({
url: '/pages/mppage/mppage',
success: () => {
console.log("uni.webView.navigateTo success");
},
fail: () => {
console.log("uni.webView.navigateTo fail");
}
})

操作步骤:

使用Hbx打开附件工程,运行到chrome(h5),然后再运行到微信小程序,
小程序默认会加载之前运行到h5的页面,h5页面里有个按钮,点击按钮会运行
uni.webView.navigateTo

预期结果:

成功跳转到小程序页面

实际结果:

没有任何效果

bug描述:

微信小程序使用webview嵌套uni-app发布的h5页面,uni.webView.navigateTo 无法跳转
已经template.h5.html加载uniwebview的sdk

uni.webView.navigateTo方法存在但是调用没效果

bug demo已经上传,使用步骤见【复现步骤】
H5页面加的有vconsole 可以直接在小程序里点vconsole图标查看h5的log

2 天前 负责人:无 分享
已邀请:
yorick

yorick (作者)

能安排下吗

yorick

yorick (作者)

自问自答吧

文档说uni.webview.1.5.2.js要放在body下面,照做了,但微信jssdk我放head里面了,经测试
微信jssdk也要放在body的下面,之前放在head里面是不行的(强烈建议官方在文档中补充说明),
正确的写法如下:

<!DOCTYPE html>  
<html lang="zh-CN">  
  <head>  
    <meta charset="utf-8">  
    <meta http-equiv="X-UA-Compatible" content="IE=edge">  
    <link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico">  
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">  
    <title>  
      <%= htmlWebpackPlugin.options.title %>  
    </title>  
    <script>  
      document.addEventListener('DOMContentLoaded', function() {  
        document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'  
      })  
    </script>  
    <link rel="stylesheet" href="<%= BASE_URL %>static/index.css" />  
  </head>  
  <body>  
    <noscript>  
      <strong>本站点必须要开启JavaScript才能运行</strong>  
    </noscript>  
    <div id="app"></div>  
  </body>  
  <script src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>  
  <!-- uni 的 SDK -->  
  <script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>  
  <script>  
    document.addEventListener('UniAppJSBridgeReady', function() {  
      uni.webView.getEnv(function(res) {  
        console.log('当前环境:' + JSON.stringify(res));  
      });  
    });  
  </script>  
</html>  

要回复问题请先登录注册