uni-app 华为快应用生成的webview存在问题 在这里使用webview的

uni-app 华为快应用生成的webview存在问题 在这里使用webview的

示例代码:

<web-view  
class="flex flex-1"  
src="https://www.baidu.com"
  ref="webview"
  [@message](/user/message)="getMessage"
></web-view>

操作步骤:

<web-view  
class="flex flex-1"  
src="https://www.baidu.com"
  ref="webview"
  [@message](/user/message)="getMessage"
></web-view>

预期结果:

  • getMessage 可以调用

## 实际结果:


- getMessage 不可以调用

bug描述:

在这里使用webview的@message方法接收不到


更多关于uni-app 华为快应用生成的webview存在问题 在这里使用webview的的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 华为快应用生成的webview存在问题 在这里使用webview的的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在华为快应用平台,<web-view> 组件的 @message 事件确实存在兼容性问题。这是由于快应用平台的底层实现与标准 Webview 存在差异,导致通过 postMessage 从内嵌网页向 uni-app 应用发送的消息无法正常触发 @message 事件监听。

当前可行的解决方案:

  1. 使用条件编译进行平台判断:在代码中针对华为快应用平台采用不同的通信方式。
    // 在页面或组件脚本中
    export default {
        onLoad() {
            // #ifdef quickapp-webview-huawei
            // 华为快应用特有的处理逻辑
            this.initQuickappWebview();
            // #endif
        },
        methods: {
            // #ifdef quickapp-webview-huawei
            initQuickappWebview() {
                // 通过快应用官方提供的API与Webview进行通信
                // 例如,通过自定义事件或全局变量
            },
            // #endif
            getMessage(event) {
                // 其他平台正常处理
                console.log('收到消息:', event.detail);
            }
        }
    }
回到顶部