uniapp 在app和小程序端使用webview进行数据交互

结论:app端支持比较好可以做到实时传递,微信小程序支持比较差,小程序向url传参只能通过url,url向app传参需要特定时机(后退、组件销毁、分享、复制链接)触发才能收到消息。

以下是代码

  1. app端(需要使用nvue)
    <template>  <view class="webview-box">  <button style="z-index: 999;" @click="handlePostMessage('app向url传值')">点击向url传值</button><web-view ref="webview" class="webview" src="http://192.168.18.103:8080/index?os=wx" @onPostMessage="PostMessage"></web-view>  </view>  
    </template>  
    <script>  export default {  data() {  return {  url:'http://192.168.18.103:8080/index?os=wx'}  },  onLoad() {  this.url += '&t=' + new Date().getTime()},  methods: {  // 接收h5页面发来的键值判断需要执行的操作  PostMessage(evt) {  console.log("postMessage: ", evt)uni.showModal({title:"提示",content:evt.detail.data[0].msg})},  // 获取到对应webview(关键)通过evalJs(注意大小写,如果不知道evalJ是什么,可自行百度) 执行网页的函数,可对其进行传参,完成与网页的通讯  handlePostMessage(res) {  console.log("22")this.$refs.webview.evalJs(`handleMessage('${res}')`);  }  }  }  
    </script>  <style>  .webview-box {  position: absolute;  left: 0px;  right: 0px;  top: 0px;  bottom: 0px;  }  .webview {  flex: 1; height: 300rpx;}  
    </style> 
    
  2. 微信小程序端(正常vue格式)
    <template>  <view class="webview-box">  <web-view ref="webview" class="webview" :src="url" @onPostMessage="PostMessage" @message="PostMessage"></web-view>  </view>  
    </template>  
    <script>  export default {  data() {  return {  url:'http://192.168.18.103:8080/index?os=wx'}  },  onLoad() {  this.url += '&t=' + new Date().getTime()},  methods: {  // 接收h5页面发来的键值判断需要执行的操作  PostMessage(evt) {  console.log("postMessage1: ", evt)  },  // 获取到对应webview(关键)通过evalJs(注意大小写,如果不知道evalJ是什么,可自行百度) 执行网页的函数,可对其进行传参,完成与网页的通讯  handlePostMessage(res) {  console.log("22")}  }  }  
    </script>  <style>  .webview-box {  position: absolute;  left: 0px;  right: 0px;  top: 0px;  bottom: 0px;  }  .webview {  flex: 1; height: 300rpx;}  
    </style> 
    

    3、html端

    <!doctype html>
    <html lang="ch" xmlns:th="http://www.thymeleaf.org">
    <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no,viewport-fit=cover"><title>默认的title</title><!-- 微信 JS-SDK 如果不需要兼容小程序,则无需引用此 JS 文件。 -->  <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>  <!-- uni 的 SDK,必须引用。 -->  <script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script><body><div id="box"></div><div class="btn" >点击1</div><button id="to_shiming">向上传递数据</button></body><script>  // 在引用依赖的文件后,需要在 HTML 中监听 UniAppJSBridgeReady 事件触发后,才能安全调用 uni 的 API。  document.addEventListener('UniAppJSBridgeReady', function() {// 下面就是js知识了,点击某个按钮后发消息。document.getElementById('to_shiming').addEventListener('click', function() {// 这里调用uniapp的api执行消息发送uni.postMessage({data: {msg:'url向app传值'}});});});window.handleMessage = function(msg){console.log("接收到消息",msg);alert("接收到消息"+msg);document.getElementById('box').innerText = msg;}</script>
    </head></html>
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4938.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

和chatgpt学架构03-引入UI框架(elment-plus)

目录 1 项目目录及文件的具体作用1.1 App.vue1.2 main.js的作用1.3 main.js什么时候被调用1.4 npm run serve干了什么事情1.5 package.json的作用 2 安装UI框架2.1 安装命令2.2 全局引入 3 启动工程总结 我们已经安装好了我们的vue脚手架&#xff0c;用vscode打开工程目录 要自…

【FPGA】基于C5的第一个SoC工程

文章目录 前言SoC的Linux系统搭建 前言 本文是在毕业实习期间学习FPGA的SoC开发板运行全连接神经网络实例手写体的总结。 声明&#xff1a;本文仅作记录和操作指南&#xff0c;涉及到的操作会尽量细致&#xff0c;但是由于文件过大不会分享文件&#xff0c;具体软件可以自行搜…

Leetcode-每日一题【109.有序链表转换二叉搜索树】

题目 给定一个单链表的头节点 head &#xff0c;其中的元素 按升序排序 &#xff0c;将其转换为高度平衡的二叉搜索树。 本题中&#xff0c;一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差不超过 1。 示例 1: 输入: head [-10,-3,0,5,9]输出: [0,-3,9,-…

VS报错E1696 无法打开类似于stdio.h等头文件的解决办法

VS报错E1696 无法打开类似于stdio.h等头文件的解决办法 我的VS版本是2022的&#xff0c;然后我今天把同事在VS2017上的code&#xff08;一个完整的解决方案&#xff09;从svn上拿过来。结果发现&#xff0c;一大堆E1696的错误。主要表现就是项目中include的一些常用的c语言基础…

算法竞赛字符串常用操作大全

算法竞赛字符串常用操作总结来啦~ &#x1f44a; 大家好 我是寸铁&#x1f4aa; 考前需要刷大量真题,大家一起相互监督&#xff0c;每日做N题&#xff0c;一起上岸吧✌️ ~ 冲刺蓝桥杯省一模板大全来啦 &#x1f4a5; ~ 蓝桥杯4月8号就要开始了 &#x1f64f; ~ 还没背熟模…

字幕切分视频

Whisper 仓库地址&#xff1a; https://github.com/openai/whisper 可用模型信息&#xff1a; 测试视频&#xff1a;18段&#xff0c;总共447S视频&#xff08;11段前&#xff1a;有11段开头有停顿的视频&#xff09; Tiny: 跑完&#xff1a;142S &#xff0c;11段前&#xf…

(栈队列堆) 剑指 Offer 09. 用两个栈实现队列 ——【Leetcode每日一题】

❓ 剑指 Offer 09. 用两个栈实现队列 难度&#xff1a;简单 用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead …

FreeRTOS中的互斥和同步怎么理解(通俗易懂版)-利用银行取钱和存钱两个任务举例

目录 1. 互斥&#xff08;Mutex&#xff09; 2. 同步&#xff08;Synchronization&#xff09; 通俗易懂的例子加代码 1. 互斥&#xff08;Mutex&#xff09;&#xff1a; 2. 同步&#xff08;Synchronization&#xff09;&#xff1a; 1. 互斥&#xff08;Mutex&#xff…

vscode远程连接提示:过程试图写入的管道不存在(删除C:\Users\<用户名>\.ssh\known_hosts然后重新连接)

文章目录 复现过程原因解决方法总结 复现过程 我是在windows上用vscode远程连接到我的ubuntu虚拟机上&#xff0c;后来我的虚拟机出了点问题&#xff0c;我把它回退了&#xff0c;然后再连接就出现了这个问题 原因 本地的known_hosts文件记录服务器信息与现服务器的信息冲突了…

虚拟机挂载USB设备/USB serial 连接开发板

虚拟机挂载USB设备 1、添加USB设备 2、终端输入&#xff1a;sudo fdisk -l 查看Device设备&#xff1a; 3、创建挂载目录&#xff1a;mkdir /mnt/usb 4、执行挂载命令&#xff1a;sudo mount /dev/sdb1 /mnt/usb ,查看/mnt/usb目录下是否存在U盘中的数据&#xff1a; 5、用…

html实现时钟

1、html代码 <div id"clock"><div><span id"hours"></span><span class"text"> 时 : </span></div><div><span id"minutes"></span><span class"text">…

设计模式——桥梁模式

桥梁模式 定义 桥梁模式&#xff08;Bridge Pattern&#xff09;也叫做桥接模式。 将抽象和显示解耦&#xff0c;使得两者可以独立地变化。 优缺点、应用场景 优点 抽象和实现的解耦。 这是桥梁模式的主要特点&#xff0c;它完全是为了解决继承的缺点而提出的设计模式。优…

流体力学中的湍流强度(turbulence intensity)

流体力学中的湍流强度&#xff08;turbulence intensity&#xff09; 一、定义 湍流强度&#xff08;turbulence intensity&#xff09;也被称为湍流级&#xff08;turbulence level&#xff09;&#xff0c;被定义为&#xff1a; I ≡ u ′ U I \equiv \frac{u}{U} I≡Uu′…

成为一个年薪30W+的DFT工程师是一种什么体验?

一直以来&#xff0c;DFT都是数字IC设计行业中相对神秘的一个岗位。 你说他重要吧&#xff0c;并不是所有芯片设计公司都有这个岗位&#xff0c;你说他不重要吧&#xff0c;但凡芯片产品达到一定规模后&#xff0c;就必须设置DFT部门。 一、什么是DFT&#xff1f; DFT&#x…

原生信息流广告APP应用内增收及计费模式

比起传统的广告宣传&#xff0c;信息流最大的优势就在于流量的庞大。与此同时&#xff0c;多样化的信息流广告形式和精准的定向&#xff0c;还可以帮助广告主准确获取意向流量。此外&#xff0c;它的广告形式不强迫推送&#xff0c;因此也受到了广泛用户的支持和青睐。 原生信…

音视频开发实战03-FFmpeg命令行工具移植

一&#xff0c;背景 作为一个音视频开发者&#xff0c;在日常工作中经常会使用ffmpeg 命令来做很多事比如转码ffmpeg -y -i test.mov -g 150 -s 1280x720 -codec libx265 -r 25 test_h265.mp4 &#xff0c;水平翻转视频&#xff1a;ffmpeg -i src.mp4 -vf hflip -acodec copy …

26.JavaWeb-SpringSecurity安全框架

1.SpringSecurity安全框架 Spring Security是一个功能强大且灵活的安全框架&#xff0c;它专注于为Java应用程序提供身份验证&#xff08;Authentication&#xff09;、授权&#xff08;Authorization&#xff09;和其他安全功能。Spring Security可以轻松地集成到Spring框架中…

zsh: command not found: mulate

MacOS 执行 poetry shell后报错如下&#xff1a; *[main][~/coding/ensure_import]$ poetry shell Spawning shell within /Users/mac10.12/Library/Caches/pypoetry/virtualenvs/ensure-import-3q-JXftD-py3.11 [oh-my-zsh] Would you like to update? [Y/n] [oh-my-zsh] Yo…

MySQL数据库(五)

目录 一、数据库的约束 1.1 约束类型 1.1.1 null约束 1.1.2unique约束 1.1.3default默认值约束 1.1.4primary key主键约束 1.1.5foreign key外键约束 二、内容重点总结 一、数据库的约束 1.1 约束类型 not null - 指示某列不能存储 null值。unique - 保证某列的每行必须有唯一…

简单机器学习工程化过程

1、确认需求&#xff08;构建问题&#xff09; 我们需要做什么&#xff1f; 比如根据一些输入数据&#xff0c;预测某个值&#xff1f; 比如输入一些特征&#xff0c;判断这个是个什么动物&#xff1f; 这里我们要可以尝试分析一下&#xff0c;我们要处理的是个什么问题&…