uni-app中app和webview的h5通信简单步骤

 更新时间:2025年02月10日 10:45:22   作者:必哥  
这篇文章主要介绍了如何在nvue页面中使用webview组件,并详细介绍了如何在h5项目中安装和配置npmiy_uniwebview插件,文中通过代码介绍的非常详细,需要的朋友可以参考下

前情提要:

1、使用webview的页面需要是nvue,否则没有 sWebViewRef.value.evalJS() 方法;

2、需要自己安装npm i y_uniwebview,官方的 引入https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js脚本存在冲突,会报错

第一步,在 h5 项目中安装y_uniwebview插件

安装: npm i y_uniwebview
引入: import y_uni from "y_uniwebview"

第二步,h5 代码,接收app信息和向app发送信息

<template>
  <view class="avatar-uploader">
    <view>
      <button @click="postMessage">向app发送信息</button>
    </view>
    <view>
      接收到app信息:{{ appMsg }}
    </view>
  </view>
</template>
<script lang="ts" setup>

import y_uni from "y_uniwebview"
import { ref } from 'vue';

const appMsg = ref('');

// app信息触发方法
window.appCallBack = (val) => {
  appMsg.value = val
  console.log('app发送过来的数据---', val)
}

let count = 0;

// 向app发送信息
function postMessage(type) {
  console.log('h5发送信息');
  // 发送信息
  y_uni.webView.postMessage({
    data: {
      msg: `h5信息 ${count++} 次`
    }
  });
}

</script>

第三步、app页面,接收h5信息和向h5发送信息

注意,这里需要用nvue,否则会没有 sWebViewRef.value.evalJS() 导致报错

<template>
    <view>
        <button  @click="postMsg">
            向h5发送信息
        </button>
        <view>
            接收到h5信息:{{h5Msg}}
        </view>
    </view>
    <br>
    <web-view
            ref="sWebViewRef"
            src="http://192.168.31.93/" style="" :style="webViewStyle"
            @on-post-message="handleMessage"
    ></web-view>
</template>

<script setup>
    import {computed, ref} from 'vue';

    const sWebViewRef = ref()

    const h5Msg = ref('');

    // 接收h5信息
    function handleMessage(event) {
        // 接收webview发送的消息
        h5Msg.value = event.detail.data[0].msg;
        console.log('收到 h5 消息: ' + h5Msg);
    }
    
    let count = 0;

    // 向 h5 发送信息
    function postMsg(msg) {
        console.log('app发送信息')
        sWebViewRef.value.evalJS(`appCallBack('app信息 ${count++} 次')`)
    }

    const webViewStyle = computed(() => {
        let width = 0;
        let height = 0;
        uni.getSystemInfo({
            // 获取当前设备的具体信息
            success: sysinfo => {
                width = sysinfo.windowWidth - 100;
                height = sysinfo.windowHeight - 100;
            }
        })
        return {
            width: width + 'px', height: height + 'px'
        }
    })
</script>

总结 

到此这篇关于uni-app中app和webview的h5通信的文章就介绍到这了,更多相关uni-app app和webview的h5通信内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 警告[vue-router] Duplicate named routes definition简单解决方法

    警告[vue-router] Duplicate named routes definition简单解决方法

    这篇文章主要关于介绍了警告[vue-router] Duplicate named routes definition的解决方法,这个错误提示是因为在Vue Router中定义了重复的路由名称,需要的朋友可以参考下
    2023-12-12
  • Vue + Webpack + Vue-loader学习教程之相关配置篇

    Vue + Webpack + Vue-loader学习教程之相关配置篇

    这篇文章主要介绍了关于Vue + Webpack + Vue-loader的相关配置篇,文中通过示例代码介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • vue引用js文件的多种方式(推荐)

    vue引用js文件的多种方式(推荐)

    这篇文章主要介绍了vue引用js文件的多种方式,本文大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • 快速掌握Vue3.0中如何上手Vuex状态管理

    快速掌握Vue3.0中如何上手Vuex状态管理

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,本文给大家分享Vue3.0中快速上手Vuex状态管理的方式,本文通过实例代码讲解的很详细,对大家学习Vuex状态管理相关知识有很大的帮助,感兴趣的朋友一起学习吧
    2021-05-05
  • vue基于两个计算属性实现选中和全选功能示例

    vue基于两个计算属性实现选中和全选功能示例

    这篇文章主要介绍了vue基于两个计算属性实现选中和全选功能,结合实例形式分析了vue计算属性get及set操作页面元素实现选中与全选功能相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • Vue2设置hash模式的操作步骤

    Vue2设置hash模式的操作步骤

    在 Vue.js 应用中使用 hash 模式是一种常见的路由配置方式,这种方式利用了 URL 的 hash(即 # 符号后面的部分)来实现页面的跳转和状态管理,以下是使用 Vue 2 和 Vue Router 设置 hash 模式的步骤,需要的朋友可以参考下
    2024-10-10
  • Vue3插槽Slot实现原理详解

    Vue3插槽Slot实现原理详解

    这篇文章主要为大家介绍了Vue3插槽Slot实现原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Vue中Layout内部布局el-row、el-col的实现

    Vue中Layout内部布局el-row、el-col的实现

    layout是一种非常方便的布局方式,本文主要介绍了Vue中Layout内部布局el-row、el-col的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • vue如何获取点击事件源的方法

    vue如何获取点击事件源的方法

    本篇文章主要介绍了vue如何获取点击事件源的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 浅谈VUE监听窗口变化事件的问题

    浅谈VUE监听窗口变化事件的问题

    下面小编就为大家分享一篇浅谈VUE监听窗口变化事件的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02

最新评论