uniapp与webview通信

webview中html必须引入uni.webview.js文件。uniapp有提供的官方下载地址,去官网找一下。

html 复制代码
<script type="text/javascript" src="js/webview.js"></script>

1、uniapp发消息给webview

uniapp发送代码如下:

html 复制代码
<template>
    <view class="container">
        <web-view :src="webSrc" ref="webview" @onPostMessage="handlePostMessage" @message="handlePostMessage"></web-view>
    </view>
</template>

<script>
    onLoad() {
        /* #ifdef APP-PLUS */
        
        this.webSrc = plus.io.convertLocalFileSystemURL('_www/hybrid/html/camera.html');
        var currentWebview = this.$scope.$getAppWebview()
        setTimeout(()=>{
            this.wv = currentWebview.children()[0];
        },1000)
        
        /* #endif */
    },
    methods: {
         /**
         * TODO 发送消息到webview
         * @param event
         */
        sendWebViewMessage(event){
            this.wv.evalJS("receiveAppMessage('" + JSON.stringify(event) + "')")
        },
    }
</script>

这里省略data中的数据。需要注意的是必须延时一秒再设定this.wv

webview接收代码如下:

复制代码
/**
 * 接收App的消息
 */
function receiveAppMessage(event) {
    console.log("收到消息:" + event);
    event = JSON.parse(event);
}

2、webview发消息给uniapp

webview发送代码如下:

js 复制代码
function sendAppMessage(event) {
    uni.postMessage({
        data: event
    });
}

uniapp接收代码如下:

vue 复制代码
<template>
    <view class="container">
        <web-view :src="webSrc" ref="webview" @onPostMessage="handlePostMessage" @message="handlePostMessage"></web-view>
    </view>
</template>

handlePostMessage: function (event) {
    console.log('接收webview发送的消息:', JSON.stringify(event.detail.data));
},
相关推荐
2501_9160074713 小时前
iOS开发中抓取HTTPS请求的完整解决方法与步骤详解
android·网络协议·ios·小程序·https·uni-app·iphone
00后程序员张17 小时前
Windows 下怎么生成 AppStoreInfo.plist?不依赖 Xcode 的方法
ide·macos·ios·小程序·uni-app·iphone·xcode
__zRainy__18 小时前
uni-app 全局容器实战系列(二):Vite 虚拟模块
windows·uni-app
__zRainy__18 小时前
uni-app 全局容器实战系列(一):全局容器的实现
uni-app·vite
安生生申20 小时前
uni-app 连接 JDY-31 蓝牙串口模块实践
c语言·前端·javascript·stm32·单片机·嵌入式硬件·uni-app
小离a_a20 小时前
uniapp小程序封装圆环显示比例数据
android·小程序·uni-app
__zRainy__20 小时前
uni-app 全局容器实战系列(三):全局 NavBar 和 TabBar 组件设计
uni-app
一颗小青松1 天前
uniapp输入框fixed定位,导致页面顶起解决方案
前端·uni-app
2501_915106322 天前
深入解析无源码iOS加固原理与方案,保护应用安全
android·安全·ios·小程序·uni-app·cocoa·iphone
万能小林子2 天前
2026 AI开发新范式:Vibe Coding生成网页 + 3分钟打包成App,非技术人也能独立发布自己的App!
人工智能·uni-app·ai编程·web app·vibecoding