5***@qq.com
5***@qq.com
  • 发布:2025-05-30 10:19
  • 更新:2025-06-03 10:38
  • 阅读:87

nvue webview通信问题

分类:uni-app

nvue页面

<web-view ref="webview" src="/hybrid/html/convertToBinary.html" style="width: 750px;height: 300px;"
@message="handlePostMessage"></web-view>
<button class="button" @click="evalJs">evalJs(改变webview背景颜色)</button>
evalJs() {
const message = {
type: 'response',
data: 'This is a message from nvue'
};
this.$refs.webview.evalJS("document.getElementById('div1').innerHTML ='22222'");
},
handlePostMessage(e) {
console.log(e)
}
webview页面

<body>  
    <div id="div1">11111</div>  
    <button onclick="sendMessageToNvue()">Send Message to nvue</button>  

</body>  
<script type="text/javascript" src="https://gitcode.net/dcloud/uni-app/-/raw/dev/dist/uni.webview.1.5.6.js"></script>  
<script type="text/javascript">  
    // 待触发 `UniAppJSBridgeReady` 事件后,即可调用 uni 的 API。  
    document.addEventListener('UniAppJSBridgeReady', function() {  
        console.log(1)  
        webUni.getEnv(function(res) {  
            console.log('当前环境:' + JSON.stringify(res));  
        })  
        webUni.postMessage({  
            data: {  
                action: 'getPhone'  
            }  
        })  
    });  

其中document.addEventListener('UniAppJSBridgeReady'一直没反应 永远进不去这是为什么?所有的官方与非官方都是这么写的 ,但是this.$refs.webview.evalJS这里改变颜色、div内文字又都可以实现,这是为啥,该怎么解决?

2025-05-30 10:19 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

用官方示例中html 测试下会不会触发
把 /hybrid/html/convertToBinary.html 替换成 https://uniapp.dcloud.io/static/web-view.html

夏夜今晨

夏夜今晨

uni.webview.1.5.6.js你下载下来,作为本地路径引入试下

要回复问题请先登录注册