CodeFi1999
CodeFi1999
  • 发布:2025-01-15 15:54
  • 更新:2025-01-15 16:40
  • 阅读:89

在微信小程序和app环境下,web-view内嵌的外部H5里面调用uni api

分类:uni-app

使用 uni-app 写的 项目A 已兼容微信小程序 和 APP。
另外有个 使用uni-app vue写的H5 (项目B)
现在想 项目A使用web-view组件 内嵌项目B的某个H5页面。
问题:在小程序环境里有用,但是在app环境下,报错:TypeError:Cannot read property 'reLaunch' of undefined

有没有大佬清楚咋解决?我找了网上文档,没有用。

代码示例如下
我分别引入了 微信的js 和 uni.webview.js

<!-- 引入微信jssdk -->  
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>  
<!-- uni.webview.js文件 -->  
<script type="text/javascript" src="https://gitcode.net/dcloud/uni-app/-/raw/dev/dist/uni.webview.1.5.6.js"></script>
isInWXWebView() {  
    return navigator.userAgent.match(/miniprogram/gi) || window.__wxjs_environment === 'miniprogram';  
}  
// 调用方法跳转页面  
returnAppIndex() {  
            try {  
                 if (this.isInWXWebView()) {  
                    // 微信小程序里  
                    window.jWeixin.miniProgram.reLaunch({  
                        url: pageUrl  
                    });  
                 } else {  
                    uni.webView.reLaunch({  
                           url: pageUrl  
                    });  
                 }  
            } catch (error) {  
                console.log(error);  

            }  
        }
2025-01-15 15:54 负责人:无 分享
已邀请:
CodeFi1999

CodeFi1999 (作者)

<body>  
<!-- 引入微信jssdk -->    
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>    
<!-- uni.webview.js文件 -->    
<script type="text/javascript" src="https://gitcode.net/dcloud/uni-app/-/raw/dev/dist/uni.webview.1.5.6.js"></script>  

    <div id="app"><!--app-html--></div>  
    <script type="module" src="/main.js"></script>  
    <script>  
        // uni.webview.js默认输出的uni;但是因为本身是uni-app;会和本身uni冲突;所以这里重命名变量。  
        const uniWebView = uni.webView  
    </script>  
  </body>

然后他就不报错了!!!

要回复问题请先登录注册