如何将h5转换编译为微信小程序?

FinClip如何将H5工程转为小程序
小程序独立出来了很多原生APP的组件,这对于HTML5的老兵是一种痛苦,小程序自己开发了一套WXML标记语言和WXSS样式语言,并非直接使用标准的HTML5+CSS3,小程序与传统HTML5还是有明显的区别。

微信小程序自开放出来到现在也有一段时间了,相信其底层架构也被琢磨得差不多了。微信小程序本身是双线程运行的结构,而 h5 页面是单线程的运行模式,因此两者无法直接互通。全端云微信小程序的运行模式如下:

小程序开发

微信小程序本身提供了 web-view 组件来支持在全端云微信小程序中嵌入 h5 页面,但是 web-view 组件在使用上还是有一些限制:不支持个人类型与海外类型的小程序、不支持全屏、页面与小程序通信不方便、很多小程序接口无法直接调用等。

如果无法使用 web-view,这里还有一条路可以走,利用FinClip工具来将 h5 页面转换成小程序。

那对于HTML5应用的咱办呢?

如何快速的从HTML5转换成小程序呢?

甚至是在考虑小程序与HTML5应用是同一个程序,方便统一维护。

准备工作:

下载一个工具编译一下就可以啦!手把手教学一下:

下载安装FIDE小程序开发工具:https://www.finclip.com/mop/document/develop/developer/fide-update-log.html#
使用开发工具新建一个小程序

在小程序中嵌入H5页面方法

小程序实现:
使用web-view组件,在src属性中写入H5页面url即可

<web-view src=”www.baidu.com”></web-view>
也可以使用数据绑定方式

<web-view :src=”{{webViewUrl}}”></web-view>
在本地磁盘中找到对应项目,将项目文件压缩为zip包

上传小程序代码包
在【开发设置-代码包管理】中,上传该代码包

完成域名配置
在【开发设置-域名管理】中,完成对应域名请求设置

通过 FinClip APP 或已集成SDK的APP查看小程序

原理
原理其实很简单,h5 页面在浏览器运行的过程就是解析 html 到渲染 dom 树的过程,然后提供一些 dom/bom 接口给 js 调用。那么在小程序中我们把这一套给模拟一遍就行了,方法很暴力,但是却意外的有效:因为给 h5 页面提供了类似浏览器的环境,实现了最底层的适配,所以理论上来说那些通用的框架和库也能支持运行。上面的例子中就表明了 jQuery 是能够运行的,像 react、vue 也是可以做到支持的。

 

微信小程序是双线程的运行模式,视图层专注于渲染,逻辑层专注于逻辑。逻辑层是在一个纯净的 js 线程中跑,那里没有 dom/bom 接口,只能运行页面逻辑层的代码。要模拟浏览器环境,最基本的就是要在逻辑层里模拟出一棵 dom 树,本质上和建立一棵虚拟树类似,因为它并不是真实的 dom 树。整个流程简单来说是这样的:

 

不管是页面中的静态 html 内容还是使用 innerHTML 等接口动态插入的 html 内容都可以走上面的流程来进行 dom 树的创建。dom 树创建比较简单,只是细节比较多,此处的关键是将创建好的 dom 节点映射到全端云微信小程序的自定义组件,利用自定义组件的特性可以轻易的将我们创建好的 dom 树给渲染出来。

RIPRO主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
百搜全端云-抖音生活服务-微信小程序开发「百搜云端」 » 如何将h5转换编译为微信小程序?

发表回复