微信小程序原生与 H5 交互方式

在这里插入图片描述
在微信小程序中,原生与 H5 页面(即 WebView 页面)之间的交互通常有以下几种方式:

1. 使用 postMessage 进行通信

微信小程序的 WebView 页面和原生小程序页面可以通过 postMessage 来进行数据传递。
WebView 页面向原生小程序发送消息: 在 WebView 页面中,使用 window.postMessage() 发送消息给原生小程序:

window.postMessage({ data: 'Hello from H5!' });

原生小程序接收 WebView 消息: 在原生小程序的 WebView 组件中,使用 bindmessage 事件来接收消息:

<web-view src="https://your-h5-url" bindmessage="onMessage"></web-view>Page({onMessage(e) {console.log(e.detail.data); // 'Hello from H5!'}
});

原生小程序向 WebView 页面发送消息: 使用 web-view 组件的 postMessage 方法:

this.selectComponent("#webview").postMessage({data: "Hello from Mini Program!"
});

2. 使用 wx.postMessage 发送消息

如果你在 WebView 中嵌入了 H5 页面,你还可以使用 wx.postMessage API,在小程序与 H5 页面之间进行通信。
原生小程序发送消息给 H5 页面:

wx.createSelectorQuery().select('#webview').context(res => {const webview = res.context;webview.postMessage({ data: 'Hello from Mini Program!' });
}).exec();

H5 页面接收消息:

H5 页面中使用 window.addEventListener('message', callback) 来接收消息:window.addEventListener('message', function (e) {console.log(e.data); // 'Hello from Mini Program!'
});

3. 使用 URL 参数

另一种常见的方式是通过 WebView 的 URL 传递参数。原生小程序可以在打开 WebView 页面时将数据附加在 URL 中,H5 页面通过 window.location 或 URL 解析来接收参数。

<web-view src="https://your-h5-url?data=Hello"></web-view>

在 H5 页面中,可以通过 window.location.search 获取参数:

const urlParams = new URLSearchParams(window.location.search);
const data = urlParams.get('data'); // 'Hello'

4. 调用原生 API

微信小程序可以调用 wx.navigateToMiniProgram 来打开另一个小程序,实现与 H5 页面之间的间接交互。

总结

postMessage 是原生小程序和 H5 页面之间最常用的交互方式。也可以通过 URL 参数 传递数据,适用于简单的数据传递。需要注意的是,H5 页面和小程序之间的通信在安全性上会有所限制,确保数据交换时的安全性和可靠性。根据你的需求,可以选择合适的方式进行原生小程序与 H5 页面之间的交互。

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

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

相关文章

c++领域展开第十二幕——类和对象(STL简介——简单了解STL)超详细!!!!

文章目录 前言STL简介什么是STLSTL的版本STL的六大组件STL的重要性如何学习STL 总结 前言 上篇博客我们了解了初阶的模版函数&#xff0c;以及有关的一些使用方法。 今天我们来了解了解STL库的有关知识 跟我一起上车吧 STL简介 什么是STL STL&#xff1a;是C标准库的重要组成…

音频语言模型与多模态体系结构

音频语言模型与多模态体系结构 多模态模型正在创造语言、视觉和语音等以前独立的研究领域的协同效应。这些模型使用通用架构,将每种模式视为不同的“token”,使它们能够以一种与人类认知非常相似的方式联合建模和理解世界。 ​ ​可以将多模态分为两个主要领域:输入空间(…

HTML中最基本的东西

本文内容的标签&#xff0c;将是看懂HTML的最基本之基本 &#xff0c;是跟您在写文章时候一样内容。一般想掌握极其容易&#xff0c;但是也要懂得如何使用&#xff0c;过目不忘&#xff0c;为手熟尔。才是我们学习的最终目的。其实边看边敲都行&#xff0c;或者是边看边复制粘贴…

LVGL移植高通点阵字库GT30L24A3W

字库芯片: GT30L24A3W MCU:STM32F429 LVGL版本:V8.4 一、实现gt_read_data() 和 r_dat_bat() 请参考下面视频 如何在32位MCU上使用高通点阵字库_哔哩哔哩_bilibili 高通字库使用教程(1)硬件链接与注意事项部分_哔哩哔哩_bilibili 高通字库使用教程(2)SPI底层函数使用_哔哩…

计算机的错误计算(二百一十二)

摘要 利用两个大模型计算 实验表明&#xff0c;两个大模型均进行了中肯的分析。另外&#xff0c;其中一个大模型给出了 Python代码&#xff0c;运行后&#xff0c;结果中有7位错误数字&#xff1b;而一个大模型进行加减运算时出错。 例1. 计算 下面是与一个大模型的对话…

蓝桥与力扣刷题(709 转换成小写字母)

题目&#xff1a;给你一个字符串 s &#xff0c;将该字符串中的大写字母转换成相同的小写字母&#xff0c;返回新的字符串。 示例 1&#xff1a; 输入&#xff1a;s "Hello" 输出&#xff1a;"hello"示例 2&#xff1a; 输入&#xff1a;s "here…

9.7 visual studio 搭建yolov10的onnx的预测(c++)

1.环境配置 在进行onnx预测前&#xff0c;需要搭建的环境如下: 1.opencv环境的配置&#xff0c;可参考博客:9.2 c搭建opencv环境-CSDN博客 2.libtorch环境的配置&#xff0c;可参考博客&#xff1a;9.4 visualStudio 2022 配置 cuda 和 torch (c)-CSDN博客 3.cuda环境的配置…

自建RustDesk服务器

RustDesk服务端 下面的截图是我本地的一个服务器做为演示用&#xff0c;你自行的搭建服务需要该服务器有固定的ip地址 1、通过宝塔面板快速安装 2、点击【安装】后会有一个配置信息&#xff0c;默认即可 3、点击【确认】后会自动安装等待安装完成 4、安装完成后点击【打开…

浅谈云计算15 | 存储可靠性技术(RAID)

存储可靠性技术 一、存储可靠性需求1.1 数据完整性1.2 数据可用性1.3 故障容错性 二、传统RAID技术剖析2.1 RAID 02.2 RAID 12.3 RAID 52.4 RAID 62.5 RAID 10 三、RAID 2.0技术3.1 RAID 2.0技术原理3.1.1 两层虚拟化管理模式3.1.2 数据分布与重构 3.2 RAID 2.0技术优势3.2.1 自…

Android JecPack组件之LifeCycles 使用详解

一、背景 LifeCycle 是一个可以感知宿主生命周期变化的组件。常见的宿主包括 Activity/Fragment、Service 和 Application。LifeCycle 会持有宿主的生命周期状态的信息&#xff0c;当宿主生命周期发生变化时&#xff0c;会通知监听宿主的观察者。 LifeCycle 的出现主要是为了…

Facebook 隐私风波:互联网时代数据安全警钟

在社交媒体飞速发展的今天&#xff0c;个人数据的隐私保护已成为全球关注的焦点。作为全球最大的社交平台之一&#xff0c;Facebook面临的隐私问题&#xff0c;尤其是数据泄露事件&#xff0c;频繁引发公众的广泛讨论。从用户信息被滥用到数据泄漏&#xff0c;Facebook的隐私挑…

candb++ windows11运行报错,找不到mfc140.dll

解决问题记录 mfc140.dll下载 注意&#xff1a;放置位置别搞错了

蓝桥杯备赛:顺序表和单链表相关算法题详解(上)

目录 一.询问学号&#xff08;顺序表&#xff09; 1.题目来源&#xff1a; 2.解析与代码实现&#xff1a; &#xff08;1&#xff09;解析&#xff1a; &#xff08;2&#xff09;代码实现&#xff1a; 二.寄包柜&#xff08;顺序表&#xff09; 1.题目来源&#xff1a; …

uni-app的学习

uni-app 有着跨平台支持、丰富的插件和生态系统、高性能、集成开发工具HBuilderX的配合使用。允许使用者仅通过一套代码发布到多平台使用。 uni-app官网 uni-app 是一个适合开发跨平台移动应用和小程序的框架&#xff0c;能够大幅提高开发效率。 一、了解 1.1 工具准备 从Git…

基于光偏振与光学调制实现白光干涉相移

基于光的偏振特性和一些光学元件对光的调制作用&#xff0c;实现白光干涉中的光学相移原理是一个复杂而精细的过程。以下是对这一原理的详细解释&#xff1a; 一、光的偏振特性 光的偏振是指光波在传播过程中&#xff0c;光矢量的方向和大小有规则变化的现象。圆偏振光的电场…

Flutter:封装ActionSheet 操作菜单

演示效果图 action_sheet_util.dart import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import package:demo/common/index.dart;class ActionSheetUtil {/// 底部操作表/// [context] 上下文/// [title] 标题/// [items] 选项列表 …

使用yarn命令创建Vue3项目

文章目录 1.技术栈2.创建流程2.1创建vue3项目2.2选择配置项2.3进入项目目录 3.使用Yarn启动项目3.1安装依赖3.2运行项目 1.技术栈 yarnvitevue3 2.创建流程 2.1创建vue3项目 vue create 项目名称2.2选择配置项 直接回车可选择Vue3 2.3进入项目目录 cd 项目名称默认在当前…

【Node.js的安装与配置】

目录&#xff1a; 一&#xff1a;下载Node.js二&#xff1a;安装Node.js三&#xff1a;配置存放目录四&#xff1a;配置环境变量五&#xff1a;配置淘宝镜像六&#xff1a;测试Node.js 一&#xff1a;下载Node.js &#x1f534; 下载地址&#xff1a;https://www.nodejs.com.cn…

【AIGC】SYNCAMMASTER:多视角多像机的视频生成

标题&#xff1a;SYNCAMMASTER: SYNCHRONIZING MULTI-CAMERA VIDEO GENERATION FROM DIVERSE VIEWPOINTS 主页&#xff1a;https://jianhongbai.github.io/SynCamMaster/ 代码&#xff1a;https://github.com/KwaiVGI/SynCamMaster 文章目录 摘要一、引言二、使用步骤2.1 TextT…

左神算法基础提升--1

文章目录 哈希函数哈希函数的主要特点确定性快速计算输出长度固定离散性 哈希表哈希表的原理解题 布隆过滤器布隆过滤器的主要特点高效性快速查询空间效率误报率 布隆过滤器的原理 一致性哈希一致性哈希原理一致性哈希应用 哈希函数 哈希函数是一种将任意长度的输入&#xff0…