文章内多次使用了关键字“壳”,首先先解释一下什么是壳

壳: 小程序由原生的web-view组件形成的页面,页面只包含技术逻辑(如打开H5页面),不包含具体业务接口请求和业务逻辑处理

一、小程序嵌套H5的模式种类

1.单壳内跳模式

打开小程序后,进入入口页面(首页)后,其他跳转都是通过window.location.href跳转的

2.单壳自跳模式

小程序只有一个壳A,每次跳转都是由壳A跳转壳A,通过path里传递不同的参数,从而打开不同的H5页面

3.主原从壳模式

为了更好的用户体验和使用微信强大的能力,主要页面采用小程序原生开发,次要页面采用壳套H5页面开发。

主要页面:拥有复杂的业务逻辑或用户交互。

次要页面:主要是展示作用的页面,用户交互和数据交互很少或者没有。

4.组合模式(没有金刚钻别揽瓷器活,不推荐用此模式)

模式1+模式2+模式3有两种及两种以上的模式应用,所以叫组合模式

二、小程序嵌套H5后失去的优势

1.更快的加载速度

1)小程序的代码加载完成后,才会加载H5代码

2)小程序的代码在手机上有缓存,H5代码不会被缓存(设置缓存除外)

因此小程序嵌套H5后加载内容和展示页面的速度会更慢。

2.更强大的能力

小程序原生能力包含用户信息,支付,数据统计,广告平台,位置服务,与硬件交互的能力(蓝牙,Wifi,NFC),与系统的交互(文件,扫码,剪切板,电话)等,H5页面具备这些能力。

3.原生APP的体验

具体例子,前端开发少不了与input元素打交道。当input聚焦的一刹那(onfocus),使用小程序开发和H5开发有着截然不同的体验,如键盘弹起速度,弹起位置,键盘的种类等等,小程序有着原生APP的体验,而H5则体验较差。

三、小程序与H5的通信

1.小程序向H5通信:

目前只有一种方式,就是通过设置web-view组件里的src属性中的链接参数来传递数据,H5通过URL里的参数来获取小程序传递来的数据。

2.H5向小程序通信:

目前也只有一种方式,通过wx.miniProgram.postMessage来向小程序传递数据,小程序通过在web-view组件上bindmessage绑定回调事件来接收数据,注意:bindmessage绑定的事件不是实时能获取wx.miniProgram.postMessage传递的数据,而是特定的时机(小程序后退、组件销毁、分享)

好了!今天的文章先更新到这里,本篇文章主要是理论,下一篇都是满满的干货!

小程序嵌套H5的方式和技巧(一)的更多相关文章

  1. 小程序嵌套H5的方式和技巧(二)

    文章接上文,小程序嵌套H5的方式和技巧(一) 四.刷新wev-view嵌套的H5页面 1)我们为什么要刷新wev-view嵌套的H5页面? 很多的业务场景都需要开发者每次打开页面都更新一下页面的数据. ...

  2. 小程序嵌套h5

    <web-view src="https://m.boc7.com/driver_unlogin/driver1"></web-view>

  3. Taro 多端开发的正确姿势:打造三端统一的网易严选(小程序、H5、React Native)

    笔者所在的趣店 FED 早在去年 10 月份就已全面使用 Taro 框架开发小程序(当时版本为 1.1.0-beta.4),至今也上线了 2 个微信小程序.2 个支付宝小程序. 之所以选用 Taro, ...

  4. 承接微信小程序外包 H5外包就找北京动点软件开发团队

    承接小程序外包 微信小程序外包 H5外包 就找北京动点软件 长年承接微信小程序.微信公众号开发 全职的H5开发团队,开发过几十款微信小程序公众号案例 欢迎来电咨询,索取案例! QQ:372900288 ...

  5. 承接小程序外包 微信小程序外包 H5外包 就找北京动点软件

    承接小程序外包 微信小程序外包 H5外包 就找北京动点软件 长年承接微信小程序.微信公众号开发 全职的H5开发团队,开发过几十款微信小程序公众号案例 欢迎来电咨询 QQ:372900288 微信:li ...

  6. 小程序和H5互调

    小程序跳H5页面 https://blog.csdn.net/mytljp/article/details/81030687(copy) H5页面跳小程序 https://blog.csdn.net/ ...

  7. 微信小程序新版用户授权方式处理

    最新更新(2018-12-27): 最近做了改版,做成默认进来就是首页,然后去判断有没有用户信息,没有的话再去判断用没授权过,如果授权过直接自动去获取,没有的话再跳转到授权页面.因为用户授权主要就是针 ...

  8. 小程序与h5的相互跳转

    1, 小程序跳h5 <web-view src="https://zgl.seamo.cn/zglh5/kjzjlist1.html"></web-view> ...

  9. 用 React 编写的基于Taro + Dva构建的适配不同端(微信小程序、H5、React-Native 等)的时装衣橱

    前言 Taro 是一套遵循 React 语法规范的 多端开发 解决方案.现如今市面上端的形态多种多样,Web.React-Native.微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表 ...

随机推荐

  1. 浅谈一手MYSQL设计规范

    前言: 最近牵头搞一个机场管理集团的项目,发现团队中的成员对于库表设计,有非常多的盲区.所以决定写一篇文章,总结一下最近工作的几年中,常用的一些数据库设计规范和思路. 目的 MySQL数据库与 Ora ...

  2. 题解 [BJOI2017]开车

    题目传送门 题目大意 有\(n\)个汽车和\(n\)个加油站,坐标分别为\(a_{1,2,...,n}\)和\(b_{1,2,...,n}\).每辆汽车会到一个加油站,求出最小移动距离之和.有\(m\ ...

  3. CF1082G Petya and Graph(最小割,最大权闭合子图)

    QWQ嘤嘤嘤 感觉是最水的一道\(G\)题了 顺便记录一下第一次在考场上做出来G qwqqq 题目大意就是说: 给你n个点,m条边,让你选出来一些边,最大化边权减点权 \(n\le 1000\) QW ...

  4. 款阿里开源的 Java 诊断工具Arthas

    Arthas是什么鬼? Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题. Arthas诊断使用的是命令行交互模式,支持JDK6+,Linux. ...

  5. MySQL:提高笔记-5

    MySQL:提高笔记-5 学完基础的语法后,进一步对 MySQL 进行学习,前几篇为: MySQL:提高笔记-1 MySQL:提高笔记-2 MySQL:提高笔记-3 MySQL:提高笔记-4 MySQ ...

  6. 移动端 h5 uniapp 读,写,删本地文件或sd文件

    移动端 h5 uniapp 读,写,删本地文件或sd文件 应用场景: 当我们需要做离线应用或者是加载本地文件时使用到此方法.(本篇文章给大家分享访问app私有文件目录,系统公共目录,sd外置存储的文件 ...

  7. 【二食堂】Beta - Scrum Meeting 7

    Scrum Meeting 7 例会时间:5.19 18:30~18:50 进度情况 组员 当前进度 今日任务 李健 1. 文本区域的前后端对接完成,bug已经修复issue2. 自定义关系的添加与删 ...

  8. mil,mm与inch之间的转换

    inch:英寸 mil:密耳 mm:毫米 cm:厘米 1mil=0.0254mm=25.4um 1mm=39.37mil 1inch=1000mil=25.4mm=2.54cm(公分) /////// ...

  9. ip_local_port_range 和 ip_local_reserved_ports

    问题:启动应用程序时,发现网络端口被占用,原因是什么?如何避免? 原因:Linux 系统设置了随机使用的端口范围  echo "40000  60000" > /proc/. ...

  10. Python课程笔记 (五)

    今天主要学习图形用户界面,更多的还是要我们自己去实际操作,课仿佛上了一半就完了,分享一下课程(这里在SixthClass)的源码: https://gitee.com/wang_ming_er/pyt ...