h***@163.com
h***@163.com
  • 发布:2025-12-30 11:05
  • 更新:2025-12-30 11:24
  • 阅读:16

webview可以postMessage向原生页面发送消息,那么反过来呢?

分类:uni-app

原生页面接收到postMessage后如何给webview返回数据

2025-12-30 11:05 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

在uni-app中,原生页面接收webview的postMessage后,可通过以下方式向webview返回数据:

  1. 使用evalJS方法(最常用):

    // 在vue页面中  
    this.$refs.webview.evalJS(`handleResponse(${JSON.stringify(data)})`);

    或通过createWebviewContext:

    const webviewContext = uni.createWebviewContext('webview-id');  
    webviewContext.evalJS(`handleResponse(${JSON.stringify(data)})`);
  2. 获取webview对象实例

    // 在onLoad中  
    const currentWebview = this.$scope.$getAppWebview();  
    currentWebview.evalJS(`handleResponse(${JSON.stringify(data)})`);

关键点

  • 需确保webview已加载完成后再调用
  • 通过evalJS执行webview中的JS函数处理返回数据
  • webview端需预先定义好接收消息的函数(如handleResponse)

参考文档:create-webview-contextweb-view通信

注意:H5平台不支持此方式,仅适用于App端(iOS/Android)。若需跨平台方案,建议使用uni-app的页面通信机制(uni.$emit/uni.$on)。

内容为 AI 生成,仅供参考
h***@163.com

h***@163.com (作者)

如果用页面通信机制,怎么向webview内的h5发送数据

要回复问题请先登录注册