uniapp与webview进行数据通信

embedded/2024/12/22 15:33:41/

uniapp与webview进行数据通信:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><title>网络网页</title><style type="text/css">.btn {display: block;margin: 20px auto;padding: 5px;background-color: #007aff;border: 0;color: #ffffff;height: 40px;width: 200px;}.btn-red {background-color: #dd524d;}.desc {padding: 10px;color: #999999;}.post-message-section {visibility: hidden;}</style>
</head><body><div class="post-message-section"><p class="desc">网页向应用发送消息,注意:小程序端应用会在此页面后退时接收到消息。</p><div class="btn-list"><label>账户:</label><input type="text" name="user" required><br><label>密码:</label><input type="text" name="pwd" required><br><div class="post-message-section"><!-- HTML 内容 --><p id="receivedMessage">Received Message Will Appear Here</p></div><br><button class="btn btn-red" type="button" id="postMessage1">跳转1</button><button class="btn btn-red" type="button" id="postMessage2">跳转2</button><button class="btn btn-red" type="button" id="postMessage">postMessage</button><button class="btn btn-red" type="button" id="getMessage">点击获取GetMessage</button><button class="btn btn-red" type="button" id="getMessage">获取相机权限</button></div><p id="receivedMessage"></p></div><script type="text/javascript">var userAgent = navigator.userAgent;if(!/toutiaomicroapp/i.test(userAgent)) {document.querySelector('.post-message-section').style.visibility = 'visible';}</script><!-- uni 的 SDK --><!-- 需要把 uni.webview.1.5.5.js 下载到自己的服务器 --><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script type="text/javascript" src="uni.webview.1.5.5.js"></script><script type="text/javascript">// 待触发 `UniAppJSBridgeReady` 事件后,即可调用 uni 的 API。document.addEventListener('UniAppJSBridgeReady', function () {uni.getEnv(function (res) {console.log('当前环境111:' + JSON.stringify(res));});});
var customKey = 'key'; // 自定义的键值,可以根据需要修改// postMessage参数document.getElementById('postMessage').addEventListener('click', function () {var userValue = document.getElementsByName('user')[0].value;var pwdValue = document.getElementsByName('pwd')[0].value;var deviceInfo = navigator.userAgent; // 获取设备信息// var customValue = 'nnn'; // 自定义的第二个键值var customValue = 'nnn'; // 自定义的第二个键值// 添加自定义的键值对     uniPostMessage(customKey,customValue);  });// 监听postMessage事件// 监听来自 UniApp 的消息document.addEventListener('message', function(event) {console.log('Message received in test.html:', event.data);var receivedMessageElement = document.getElementById('receivedMessage');receivedMessageElement.textContent = 'Received message: ' + event.data;alert('Received message: ' + event.data);});// getMessage参数document.getElementById('getMessage').addEventListener('click', function () {var storage = window.plus.storage;// 获取本地存储 var customKey = 'key'; // 自定义的键值,可以根据需要修改var yourData = storage.getItem(customKey);alert(yourData);return;var parsedData = JSON.parse(yourData);if(parsedData === null) {console.log('本地存储为空');} else {console.log('Data from storage:', yourData);var parsedData = JSON.parse(yourData);document.getElementsByName('user')[0].value = parsedData.data.user || '';document.getElementsByName('pwd')[0].value = parsedData.data.pwd || '';}// 获取所有存储staoragevar keys = plus.storage.getAllKeys();var data = {};// 遍历所有的键,并将键值对添加到对象中keys.forEach(function (key) {var value = window.plus.storage.getItem(key);data[key] = value;});console.log('Data:', JSON.stringify(data));});// 获取传递过来的值console.log('获取数据:',getQuery('data')); //获取 uni-app 传来的值//取url中的参数值function getQuery(name) {// 正则:[找寻'&' + 'url参数名字' = '值' + '&']'&'可以不存在)let reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");let r = window.location.search.substr(1).match(reg);console.log('获取到的r值',r);if(r != null) {// 对参数值进行解码return decodeURIComponent(r[2]);}return null;}</script>
</body><script>// 获取按钮父元素var buttonContainer = document.body;// 添加点击事件监听器到父元素buttonContainer.addEventListener("click", function (event) {// 确保点击的是按钮if(event.target.tagName === 'BUTTON') {// 根据按钮ID进行区分if(event.target.id === 'postMessage1') {// 处理按钮1的点击事件console.log("点击了跳转1按钮");// 这里可以添加其他处理逻辑window.location.href = 'jump1.html';} else if(event.target.id === 'postMessage2') {// 处理按钮2的点击事件console.log("点击了跳转2按钮");// 这里可以添加其他处理逻辑}}});
</script></html>

http://www.ppmy.cn/embedded/114626.html

相关文章

edge 插件 iframe 读取

当前页面里的iframe 加载的网页没有注入到&#xff0c;无法读取 iframe里的节点内容 使用all_frames选项&#xff1a; 在你的content_scripts配置中&#xff0c;添加all_frames: true&#xff0c;这样可以确保脚本注入到所有的iframe中。 "content_scripts": [{"…

[网络][CISCO]CISCO_华为网络设备端口镜像配置

CISCO 华为网络设备端口镜像配置大全 isco交换机通常支持2组镜像&#xff0c;4000系列有支持6组镜象的。支持所全端口镜像。 Cisco catylist2820 有2个菜单选项 先进入menu选项&#xff0c;enable port monitor 进入cli模式&#xff0c; en conf term interface fast0/…

NFT Insider #147:Sandbox 人物化身九月奖励上线;Catizen 付费用户突破百万

市场数据 加密艺术及收藏品新闻 Doodles 动画特别剧《Dullsville and The Doodleverse》在多伦多国际电影节首映 Doodles 最近在多伦多国际电影节&#xff08;TIFF&#xff09;首映了其动画特别剧《Dullsville and The Doodleverse》&#xff0c;这是该品牌的一个重要里程碑。…

OpenCV特征检测(3)计算图像中每个像素处的特征值和特征向量函数cornerEigenValsAndVecs()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算图像块的特征值和特征向量用于角点检测。 对于每一个像素 p &#xff0c;函数 cornerEigenValsAndVecs 考虑一个 blockSize blockSize 的邻…

LeetCode2414题: 最长的字母序连续子字符串的长度(原创)

【题目描述】 字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说&#xff0c;字符串 "abcdefghijklmnopqrstuvwxyz" 的任意子字符串都是 字母序连续字符串 。 例如&#xff0c;"abc" 是一个字母序连续字符串&#xff0c;而 "acb" 和…

Java项目实战II基于Java+Spring Boot+MySQL的洗衣店订单管理系统(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 随着生活节奏的加快&#xff0c;现代人对便捷、高效服务的需求日益增长&#xff0c;洗衣店作为日常生…

Unreal Engine 5 C++: 编辑器工具编写入门(中文解释)

目录 准备工作 1.创建插件 2.修改插件设置 快速资产操作&#xff08;quick asset action) 自定义编辑器功能 0.创建编辑器button&#xff0c;测试debug message功能 大致流程 详细步骤 1.ctrlF5 launch editor 2.创建新的cpp class&#xff0c;derived from AssetAction…

DataFrame生成excel后为什么多了一行数字

问题描述 python查询数据生成excel文件&#xff0c;生成的excel多了第一行数字索引&#xff0c;1,2,3,4,5...... 代码&#xff1a; df pd.DataFrame(data)df.to_excel(filename, sheet_name用户信息表, indexFalse) 解决&#xff1a; 原理也很简单&#xff0c;就是设置个参…