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

壳: 小程序由原生的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. The Data Way Vol.5|这里有一场资本与开源的 battle

    关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...

  2. NX CAM 读取加工参数

    '取加工几何试图程序组 Function GetGemoGroup_Name(ByVal camObjectTag As NXOpen.Tag) As String Dim theGemoGroupT ...

  3. Jupyter Notebook配置多个kernel

    Jupyter Notebook配置多个kernel 前言: 在anaconda下配置了多个环境,而Jupiter Notebook只是安装在base环境下,为了能在Jupiter Notebook中 ...

  4. 微信小程序实现tabs选项卡

    选项卡在我们的日常开发中,使用的还是蛮多的,但是微信小程序中却没有直接提供选项卡组件,不过我们可以变通通过 scroll-view 和 swiper 组件来实现一个选项卡的功能. 需求: 实现一个选项 ...

  5. Linux该如何学习新手入门遇到问题又该如何解决

    本节旨在介绍对于初学者如何学习 Linux 的建议.如果你已经确定对 Linux 产生了兴趣,那么接下来我们介绍一下学习 Linux 的方法. 如何去学习 学习大多类似庖丁解牛,对事物的认识一般都是由 ...

  6. Github点赞超多的Spring Boot学习教程+实战项目推荐!

    Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐!   很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它这 ...

  7. Linux题目学习

    一.填空题: 1. 在Linux系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件/etc/fstab 中读取要加载的文件系统. 3. Linux文件系统中每个文件用 i节点来标识 ...

  8. 利用Wireshark 解密HTTPS流量

    在我之前的一篇文章中已经介绍了一种解密HTTPS流量的一种方法,大致方法就是客户端手动信任中间人,然后中间人重新封包SSL流量. 文章地址: http://professor.blog.51cto.c ...

  9. Git 图形化客户端--Sourcetree

    1.图形化客户端: sourcetre下载:https://www.sourcetreeapp.com/ 2.接着并执行SourceTreeSetup-3.1.3.exe,会进入登录或注册bitbuc ...

  10. Spring Ioc 容器初始化过程

    IOC 是如何工作的? 通过 ApplicationContext 创建 Spring 容器,容器读取配置文件 "/beans.xml" 并管理定义的 Bean 实例对象.   通 ...