小程序技术实现

 小程序的UI视图和逻辑处理是用多个webview实现的,逻辑处理的JS代码全部加载到一个Webview里面,称之为AppService,整个小程序只有一个,并且整个生命周期常驻内存,而所有的视图(wxmlwxss)都是单独的Webview来承载,称之为AppView。所以一个小程序打开至少就会有2webview进程,正是因为每个视图都是一个独立的webview进程。

 

AppService

 可以理解AppService即一个简单的页面,主要功能是负责逻辑处理部分的执行,底层提供一个WAService.js的文件来提供各种api接口,主要是以下几个部分:

 1、 消息通信封装为WeixinJSBridge

 2、日志组件Reporter封装

 3wx对象下面的api方法

 4、全局的App,Page,getApp,getCurrentPages等全局方法

 5、还有就是对AMD模块规范的实现

 

AppView

 这里可以理解为h5的页面,提供UI渲染,底层提供一个WAWebview.js来提供底层的功能,具体如下:

 1、消息通信封装为WeixinJSBridge

 2、日志组件Reporter封装

 3wx对象下的api

 4、小程序组件实现和注册

 5VirtualDOMDiffRender UI实现

 6、页面事件触发

 

ServiceView通信

 使用消息publishsubscribe机制实现两个Webview之间的通信,实现方式就是统一封装一个WeixinJSBridge对象,而不同的环境封装的接口不一样

 

版权声明:本文为lingboweifu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lingboweifu/p/11912921.html