小程序webview与H5通信

article/2025/11/9 16:28:19

文章目录

  • 官方介绍
    • 注意事项
    • H5和webview的通信
      • webview到H5
      • H5到webview
      • 内嵌H5缓存问题
      • 小程序关闭,H5音频仍然在播放问题
    • 小程序内怎么调试web-view
    • tips

官方介绍

https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html

在这里插入图片描述

注意事项

  • 网页内iframe的域名也需要配置到域名白名单,webview只能加载配置过的域名(比如京东、天猫这种没配置的webview是无法显示的)
  • 每个页面只能有一个 web-viewweb-view 会自动铺满整个页面,并覆盖其他组件,自定义顶部菜单,悬浮的都没用(cover-view可以覆盖其上面,可点击了解详情)
    -web-view网页与小程序之间不支持除JSSDK提供的接口之外的通信。
  • iOS 中,若存在JSSDK接口调用无响应的情况,可在web-viewsrc后面加个#wechat_redirect解决。
  • 避免在链接中带有中文字符,在 iOS中会有打开白屏的问题,建议加一下encodeURIComponent

H5和webview的通信

webview到H5

src路径传参加载H5页面,避免使用中文字符,在 iOS 中会有打开白屏的问题,建议加一下 encodeURIComponent

注:src不支持本地路径,需要使用网络路径

偶现白屏问题,可以使用v-if来判断webview加载时机,待src动态传参获取之后,再加载webview

H5到webview

在这里插入图片描述
在这里插入图片描述

H5可以通过postMessage向小程序传参,但是传递的参数只有在特定时间才能触发接收到消息

  • 每次的postMessage不是覆盖的,而是累加的数组,之前的都不会清除,所以获取的时候要拿数组的最后一项。
//H5页面
import wx from 'weixin-js-sdk' // 引入对应的sdk//判断当前所在环境testBrowser() {let ua = window.navigator.userAgent.toLowerCase()if (ua.match(/MicroMessenger/i) == 'micromessenger') {//ios的ua中无miniProgram,但都有MicroMessenger(表示是微信浏览器)wx.miniProgram.getEnv((res) => {if (res.miniprogram) {// 在小程序} else {//在微信里}})} else {// 不在微信里面}},//触发postmessage
wx.miniProgram.postMessage({data:this.shareData,})
//小程序
<web-view :src="invitationUrl" @message="handleMessage"></web-view>handleMessage(res){this.shareData = res.detail.data[res.detail.data.length - 1];
},

内嵌H5缓存问题

web-view加载的H5具有很重的缓存,如果需要调试,可以通过在url后面加时间戳的方式解决。

小程序关闭,H5音频仍然在播放问题

小程序已经关闭,但是H5自带的背景音乐仍然在手机后台播放的问题。这里可以利用一个属性:

visibilitychange:页面可见性状态

简单的说,浏览器标签页被隐藏或显示的时候会触发visibilitychange事件。

var statusBeforeHide = true; //初始化页面的状态
var music = document.getElementById("xxx");
// 更改音乐播放状态
function setChangeMusic() {if (document[hiddenProperty]) {// 页面隐藏if (statusBeforeHide) {music.pause(); // 暂停}} else {// 页面显示if (statusBeforeHide) {music.play() //如果statusBeforeHide是true, 继续播放}}
}let hiddenProperty = ('hidden' in document) ? 'hidden': ('webkitHidden' in document) ? 'webkitHidden': ('mozHidden' in document) ? 'mozHidden' : null;
if (hiddenProperty) {let visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange');let onVisibilityChange = () => {//console.log('visibilityChange');setChangeMusic();};document.addEventListener(visibilityChangeEvent, onVisibilityChange);
} else {console.log("不支持这个api");
}

小程序内怎么调试web-view

  • 开发工具上在web-view页面内点击鼠标右键有个调试的选项
  • 需要在真机上调试需要自行引入vconsole:https://github.com/Tencent/vConsole/blob/dev/README_CN.md

tips

  • 多场景判断,建议使用官方API: wx.miniProgram.getEnv
  • H5唤醒一些小程序API有一定的延时,0.3~1秒
  • 请调用小程序专用的JSSDK,同一个jssdk,但是webview的功能收到限制,和之前微信打开H5有所不同
  • 小程序自动获取加载H5的title
  • H5中iframe的url必须也是业务域名
  • web-view一定是撑满全屏的,自定义顶部菜单,悬浮的都没用

http://chatgpt.dhexx.cn/article/ik1rkcqd.shtml

相关文章

微信小程序web-view与H5 通信方式探索

本文作者为奇舞团前端开发工程师 小程序简介 小程序是一种全新的连接用户与服务的方式&#xff0c;它可以在微信内被便捷地获取和传播&#xff0c;同时具有出色的使用体验。 需求 微信小程序 H5 混合开发就是 在一个小程序中&#xff0c;采用部分小程序原生页面&#xff0c;部分…

微信小程序与webview H5交互(内嵌H5跳转原生页面)

在开发中&#xff0c;使用web-view组件内嵌H5页面是非常常见的&#xff0c;但很多人不知道webview内嵌H5如何与原生小程序 交互。下面介绍下实现微信小程序与webview H5交互的方法。 web-view功能描述 承载网页的容器。会自动铺满整个小程序页面&#xff0c;个人类型的小程序…

Python:下载安装包

示例1&#xff1a;安装jieba包 1.全自动安装包 WindowsR&#xff1a;输入cmd pip install jieba / pip3 install jieba 由于下载总出现错误&#xff0c;故选择其他方法进行安装包的下载。 2.半自动安装 1&#xff09;下载安装包的官方网站&#xff1a;jieba PyPI 网盘下…

Python和PyCharm的下载和安装(详细教程)

一.Python的下载和安装 1.点击下方链接进入Python官网&#xff1a; https://www.python.org/downloads 2.根据自己的需求选择python的版本&#xff0c;点击【Download】 3.等待下载完成 4.双击进行安装&#xff0c;勾选添加环境&#xff0c;点击自定义安装 5.勾选后点击【Ne…

Python的下载与安装

一.下载 1.直接下载&#xff1a;有安装包的话可直接下载并安装 2.官网下载&#xff1a;在浏览器的导航栏输入python.org后回车进入官网 &#xff08;官网界面&#xff09; &#xff08;1&#xff09;点击Downloads后选择相应的系统下载python&#xff0c;Windows系统选择Win…

电脑上如何安装python

第一步&#xff1a;下载Python安装包 在Python的官网 www.python.org 中找到最新版本的Python安装包&#xff0c;点击进行下载&#xff0c;请注意&#xff0c;当你的电脑是32位的机器&#xff0c;请选择32位的安装包&#xff0c;如果是64位的&#xff0c;请选择64位的安装包&a…

Python的下载和安装教程

今天学习python以及pycharm的下载和安装&#xff0c;参考了好几个博客&#xff0c;在此总结一下安装过程。 注意&#xff1a;在这里说明一下&#xff0c;如果要用pycharm进行python的开发&#xff0c;是要分别下载pycharm和python的&#xff0c;不要只安装pycharm就结束了。 …

怎么在python官网下载python,python的官方网址是什么

python的安装包怎么下载 下载python安装包的方法&#xff1a;1、访问python的官网地址“”2、点击Download下面的Latest后面的python版本3、在跳转后的页面用鼠标滑到最下面&#xff0c;显示的就是python的所有系统的安装包了更多Python知识&#xff0c;请关注&#xff1a;Pyt…

怎么在python官网下载python,官网python怎么下载安装

python怎么安装 在Python官网下载Python安装包&#xff0c;双击打开Python软件。勾选add Python 3.8 to PATH&#xff0c;点击install Now。 安装完成后&#xff0c;点击Close.打开电脑命令提示符&#xff0c;输入Python&#xff0c;按回车键运行。出现版本号&#xff0c;就说…

python官网下载安装教程

1.进入官网&#xff0c;选择自己所需要的版本 官网地址&#xff1a;https://www.python.org/downloads/ 2.选择对应系统的安装包下载 3.下载完成&#xff0c;点击安装包进行安装、配置 不建议安装在C盘 4.确认python是否安装成功 cmd输入命令python&#xff0c;返回安装的pyt…

python官方下载安装教程,python官方下载网站

python下载安装教程 python下载安装教程&#xff1a;自定义安装目录&#xff0c;点击install进行安装&#xff0c;打开cmd窗口&#xff0c;输入python&#xff0c;显示python的版本&#xff0c;安装成功。 Python语言更适合初学者&#xff0c;Python语言并不会让初学者感到晦…

python电脑上怎么下载-Python下载和安装图文教程[超详细]

如今python语言非常火&#xff0c;很多小伙伴都开学习python&#xff0c;但是很多小伙伴在安装python的时候遇到问题&#xff0c;下面我们就想详细介绍介绍python下载和安装的方法。 1、 打开python下载链接https://www.python.org/downloads/&#xff0c;点击自己想要的版本。…

Python的下载安装教程(很详细,初学者也能懂)

文章目录 Python的下载安装配置环境变量可提供远程搭建运行服务点击获取项目源码 Python的下载安装 1.进入Python的官网&#xff0c; http://www.python.org/download/ &#xff0c;这里以下载Windows的Python为例 2.选择下载的版本是3.9.9&#xff0c;双击下载&#xff0c;注…

python软件下载安装教程,如何下载和安装python

python下载安装教程 首先打开浏览器&#xff0c;百度搜索【python】。出现搜索结果后&#xff0c;再进入下图所示的官网中。进入官网后&#xff0c;鼠标移至【download】再选择自己的系统。进入下载页面后&#xff0c;再选择python的版本。 下载完成后&#xff0c;再点击打开…

初入Python —— Python下载

Python是一个较为高级的编程语言。那要怎么使用它呢&#xff1f; 所以&#xff0c;我们要知道如何下载Python。 目录 前言 一、Python下载 1.下载方法&#xff08;一&#xff09; 2.下载方法&#xff08;2&#xff09; 3.下载方法&#xff08;3&#xff09;——Windows版本…

2021:Python的下载安装教程(很详细,初学者也能懂)

文章目录 Python的下载安装配置环境变量喜欢技术的&#xff0c;一起进群交流学习吧&#xff01;&#xff01;&#xff01; Python的下载安装 1.进入Python的官网&#xff0c; http://www.python.org/download/ &#xff0c;这里以下载Windows的Python为例 2.选择下载的版本是…

Python的下载安装(手把手教学)

程序员养成日记第一天&#xff1a;从自主下载安装软件开始~~~ 目录 windows版本 MacOS版本 windows版本 1、进入Python官网 https://www.python.org/downloads/ 2、点击Downloads中的Windows版本 3、进入Windows版本&#xff0c;进行Python版本的挑选&#xff0c;建议P…

BI数据分析从业者从零开始学习财务知识?有哪些入门书籍推荐

商业智能BI项目的特点是面向全行业、全领域的&#xff0c;并且大部分的商业智能BI分析是直接支撑到集团高层管理决策。支撑管理决策的经营分析又离不开财务分析&#xff0c;所以基本上每个商业智能BI项目都会涉及到财务分析相关的内容。 但财务又是一个非常专业的领域&#xf…

理财入门:财务报表(简单介绍,后续入门系列文章写完后,会写实践文章在详细介绍)

文章目录 前言财务报表是什么&#xff0c;有什么用&#xff1f;上市公司的财报通过财报读懂企业的18个步骤系统的投资技能顺序 前言 选出优质生钱资产类型股票是离不开财报分析这项技能的&#xff0c;财报不仅和投资有关&#xff0c;还能分析出家庭财务危机在哪。财报最重要的…

vscode json文件中写注释

1.在vscode 打开一个json文件&#xff0c;点击底部的 JSON with Comments 选择语言模式 2.搜索 com 注意&#xff1a;上述方法重启vscode可能会失效&#xff0c;在设置中添加如下配置 // 配置文件类型识别"files.associations": {"*.js": "javascrip…