a***@lanxiniu.com
a***@lanxiniu.com
  • 发布:2023-09-13 13:52
  • 更新:2023-09-20 20:00
  • 阅读:986

【报Bug】webview使用uniapp项目开发使用uni.postMessage发送消息微信webview 控制台接受不到消息

分类:uni-app

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

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 3.8.7

第三方开发者工具版本号: 3.8.7.20230703

基础库版本号: 3.0.1

项目创建方式: HBuilderX

示例代码:
 <button class="btn btn-red" type="button" id="postMessage">postMessage</button>  

<script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.1/index.js"></script>  
        <script type="text/javascript">  
            document.addEventListener('UniAppJSBridgeReady', function() {  
                document.getElementById('postMessage').addEventListener('click', function() {  
                    console.log("1234.");  
                    uni.postMessage({  
                        data: {  
                            action: 'message'  
                        }  
                    });  
                });  
            });  
        </script>  

小程序部分代码段:<web-view :src="url" @message="getMessage"></web-view>  
getMessage(event) {  
                console.log("event.");  
                uni.showModal({  
                    content: JSON.stringify(event.detail),  
                    showCancel: false  
                });  
            }  

操作步骤:
 <button class="btn btn-red" type="button" id="postMessage">postMessage</button>  

<script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.1/index.js"></script>  
        <script type="text/javascript">  
            document.addEventListener('UniAppJSBridgeReady', function() {  
                document.getElementById('postMessage').addEventListener('click', function() {  
                    console.log("1234.");  
                    uni.postMessage({  
                        data: {  
                            action: 'message'  
                        }  
                    });  
                });  
            });  
        </script>  

小程序部分代码段:<web-view :src="url" @message="getMessage"></web-view>  
getMessage(event) {  
                console.log("event.");  
                uni.showModal({  
                    content: JSON.stringify(event.detail),  
                    showCancel: false  
                });  
            }  

预期结果:

小程序控制台收到postmessage消息

实际结果:

没反应

bug描述:

 <button class="btn btn-red" type="button" id="postMessage">postMessage</button>  

<script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.1/index.js"></script>  
        <script type="text/javascript">  
            document.addEventListener('UniAppJSBridgeReady', function() {  
                document.getElementById('postMessage').addEventListener('click', function() {  
                    console.log("1234.");  
                    uni.postMessage({  
                        data: {  
                            action: 'message'  
                        }  
                    });  
                });  
            });  
        </script>  

小程序部分代码段:<web-view :src="url" @message="getMessage"></web-view>  
getMessage(event) {  
                console.log("event.");  
                uni.showModal({  
                    content: JSON.stringify(event.detail),  
                    showCancel: false  
                });  
            }  
2023-09-13 13:52 负责人:无 分享
已邀请:
Diligent_UI

Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序

document.addEventListener('UniAppJSBridgeReady', function() { })里面打印看看有没有生效

  • a***@lanxiniu.com (作者)

    没问题,代码1234. 控制台有输出

    2023-09-13 15:00

Diligent_UI

Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序

换成@onPostMessage试试可以不

8***@qq.com

8***@qq.com - 专治微信小程序疑难杂症: 微信:zicheng199907

微信小程序的webview@message只有在特定时机触发, 前进后退

要回复问题请先登录注册