【官方文档】

小程序与H5如何互相跳转

小程序与H5交互以上传文件为例

微信小程序开放能力web-view使用之h5页面与小程序页面交互传值

快速小程序开发之微信小程序内嵌 H5

微信小程序web-view嵌套H5实现微信支付功能解决方案

微信小程序webview内嵌h5页面

使用web-view组件后,小程序就可以像浏览器一样访问一个页面,看似非常简单。

做到上面那样只需要在wxml页面里写上一行代码:

<web-view src="http://www.baidu.com"></web-view>

但实际上要真正的和小程序很好融合是很难的事情。

微信开发者工具调试webview

微信小程序 查看 webview 报错,打开webview调试器

webview打开的网页也可能需要在小程序开发工具中调试,但默认是看不到调试界面的,需要操作一下:

  • 开发者工具调试器的选择元素按钮
  • 左键点击模拟器界面的任意一处
  • 右键单击,看到开发者工具左上角冒出调试按钮了
  • 单击它开启一个新的调试窗口

半自定义顶部导航栏样式

由于<web-view>会覆盖一整个页面,所以添加其他组件(包括自己的导航栏)都无济于事,如果要改变导航栏样式,就在该页面的json配置文件中配置即可,但标题文字会被覆盖,所以只能改标题文字颜色(黑,白)和标题背景色

{"navigationBarBackgroundColor": "#0891EA","navigationBarTextStyle": "white"
}

这样就可以改掉绿色的背景:

Vue导入微信SDK

如果我们想要离开web-view前往微信小程序其他页面呢?这时候就要使用微信提供的JSSDK提供的接口来和小程序互动:

官方文档里提供的示例代码中有js的引用地址:

<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>

但是其实里面是common-js的语法,微信为了方便用户使用,也提供了npm版本的包

vuejs 项目引入微信jssdk

(vue中js-sdk配置)微信公众号开发

npm isntall -S weixin-js-sdk
<script>
import wx from 'weixin-js-sdk'
console.log(wx)
</script>

webview页面传值给小程序

如果是一些较少的数据,可以在URL跳转时带上参数即可。POST大量数据时,官方提供的唯一接口是postMessage方法。

  • 首先小程序中,在web-view组件里绑定事件

    <web-view src="http://your.url.com" bindmessage="postMessage"></web-view>
    
    function postMessage(data){console.log(data)
    }
    
  • 然后H5页面中,正常使用上传文件,获取到数据后调用方法。注意这里的key必须是data,在yourdata这里换上自己的数据

    wx.miniProgram.postMessage({ data: yourdata });
    
  • 在之后小程序后退/组件销毁/分享后,web-view组件就能接收到H5页面发送过来的数据,控制台成功输出

  • 从打印的内容可以看出,要获取当时页面发送的数据,需要通过data.detail.data[第几批(0,1,2...)发送的数据]得到

webview页面跳转到小程序的其他页面

文件上传成功后,需要自动跳转到小程序页面作下一步操作,这个步骤要在H5页面里实现,也是需要微信的JSSDK的。

wx.miniProgram.navigateTo({url: '/pages/index/index'})

由于postMessage(data)需要特定的事件才会真正收到,那么最适合的事件就是小程序后退(即卸载页面来销毁web-view组件),这边可以关闭后再跳转到指定页面。

微信小程序web-view与H5交互:监听H5向小程序postMessage传值

wx.miniProgram.redirectTo({url: '/pages/homePage/setup/setup'});

MINE MIND系列将在我的GitHub上实时更新,同时精选部分汇总于CSDN专栏
GitHub仓库:https://github.com/IcyLeaves/MINE-MIND
CSDN专栏:https://blog.csdn.net/qq_37398834/category_10975647.html

[微信小程序]WebView内嵌H5实现本地文件上传相关推荐

  1. 实现微信小程序web-view内嵌H5中的下载功能(大文件切片下载)

    实现微信小程序内嵌H5中的下载功能 一.项目场景: 难点 解决方案: 1.H5微信小程序: a.首先必不可少的是安装jweixin-module模块: b.在main.js中将依赖绑定: c.H5对应 ...

  2. 微信小程序webview内嵌H5页面缓存

    微信小程序webview内嵌H5页面缓存 参考链接: link. 问题描述: 公司项目已经开发了一个移动端的vue项目,以微信小程序作为一个入口,节省资源去原生开发,webview成了最好的选择.vu ...

  3. 微信小程序webview内嵌h5页面

    微信官方文档web-view | 微信开放文档 正式上线前准备(前期开发调试可以忽略) 首先登录小程序管理后台,把 web-view 直连的 h5 页面地添加到配置域名白名单中 比如我想要小程序直连地 ...

  4. 【愚公系列】2022年09月 微信小程序-webview内嵌网页的授权认证

    文章目录 前言 一.webview内嵌网页的授权认证 1.内嵌页面 2.登录页面 二.web端相关函数 1.判断是否是小程序环境 前言 随着微信小程序的广泛应用,小程序的用户越来越多,但受其小程序体积 ...

  5. 微信小程序web-view内嵌公众号网页分享功能实现

    web-view嵌入网页分享,有二种分享情况 1.小程序分享出当前打开的页面            2.部分页面要求,分享指定页面,而不是当前的页面 以下是代码部分 一.web-view内嵌公众号网页 ...

  6. 微信小程序实现pdf、word等格式文件上传的方法,微信小程序word文档

    目前微信只支持从聊天记录里面获取文件 一.前言 目前微信提供了一个接口 wx.chooseMessageFile 它能让用户从聊天记录里面选择一个或者多个文件,然后返回它的一些信息,列入文件的path ...

  7. 微信小程序实现pdf、word等格式文件上传的方法

    前言 微信提供了一个接口 wx.chooseMessageFile 它能让用户从聊天记录里面选择一个或者多个文件,然后返回它的一些信息,列入文件的path地址,文件名,文件的大小等. 获取这些信息再结 ...

  8. 微信小程序与内嵌网页交互实现支付功能

    上个月,小程序开放了新功能,支持内嵌网页,所以我就开始了小程序内嵌网页之路,之前我只是个小安卓. 内嵌网页中可使用JSSDK 1.3.0提供的接口,可坑就来了,居然不支持支付接口的调用,经过一番研究, ...

  9. vant weapp 多选上传图片_微信小程序结合vant weapp ui实现多图上传组件

    微信小程序多图上传 最近在写小程序的商品上传,为方便需要使用多张图片的上传的功能.因为小程序不支持数组的多张图片同时上传,然后根据自己的需求创建了一个组件希望能够帮到大家 效果图 创建一个图片上传的p ...

最新文章

  1. python神秘的魔法函数_python进阶之魔法函数
  2. 【转载】linux环境变量PS1的简介
  3. JDK 1.5 新特性——自动拆箱装箱
  4. 气象gis 解决方案_杜邦可持续解决方案全方位智能化应急管理系统解决方案
  5. 字符串 mysql索引,长字符串的MySQL索引
  6. 一个最简单的例子学会使用nodejs redis库进行数据库操作
  7. LinkedList类源码浅析(二)
  8. MSSQL · 最佳实践 · 利用文件组实现冷热数据隔离备份方案
  9. 如何查看文件的字符集
  10. 单线程实现同时监听多个端口(windows平台c++代码)
  11. Clojure 学习入门(7)- 连接mysql
  12. 简述static关键字、void与void *(void指针)、函数指针
  13. wps文件一点打印就关闭打印机服务器,WPS一打印就程序无响应怎么处理?
  14. JAVA对接大汉三通短信http接口
  15. 在chrome上安装印象笔记插件
  16. 快乐去学习「快乐机器学习」
  17. 计算机网络中OUI是什么意思,抓包出现oui Unknown是什么意思,请各位高手指教!!
  18. NestJs简明教程
  19. 关于Netty中的Recycler对象池
  20. 颠覆你想象的150个故事(1)

热门文章

  1. 隐私泄露杀手锏 —— Flash 权限反射
  2. LayaBox---TypeScript---类
  3. 【python作品分享】计算器1.0
  4. opencv 查找并绘制轮廓
  5. java中介源码_基于jsp的房屋中介管理系统-JavaEE实现房屋中介管理系统 - java项目源码...
  6. C语言实现基于查找和排序算法的学生成绩分析
  7. Linux下(CentOS7)下载并安装Python 3.9教程
  8. 手机浏览器下载的m3u8格式的多个视频文件合并成一个视频(Java实现)
  9. Cryptozoic隐生宙使用指南
  10. 联想Y7000--deepin深度操作系统安装出现的无线网卡驱动RTL8111/8168/8441问题---致搞了一整天的心