本发明属于移动互联网领域,具体是针对混合架构下的移动app提供一种支持多移动浏览器引擎加载的方法。
背景技术:
随着移动互联网的发展,移动开发技术由三种方式,即web开发、原生开发、混合开发(原生+web)。由于混合开发具有web和原生开发的优点,如移动操作系统(安卓、苹果)兼容性高、设备访问能力强、应用商店多渠道易推广、可线下使用等,混合开发逐渐成为移动app主流开发技术。由于浏览器引擎是混合开发支撑web的核心,每款移动app有不同的业务场景,对浏览器引擎在安全、稳定、省流、可靠、兼容、展现特效等方面各有不同技术需求。目前市面上主流的浏览器引擎有四种,分别是google的chromium、crosswalk、腾讯x5、苹果webview,各浏览器引擎对web支撑上各具特色,且浏览器引擎对移动app集成方式各不相同,没有统一的集成开发标准。因此,若要充分发挥移动app能力,移动app开发人员需要集成不同的浏览器引擎,集成技术门槛较高,周期长,投入成本高,导致移动app过多关注非app本身业务,不利于聚焦移动app业务本身。由于该问题在整个移动app行业都存在,重复投入高,不利于整个行业的良性发展。
技术实现要素:
基于以上情况,本发明的目的是提供一种支持多移动浏览器引擎加载的方法,实现混合架构下移动app多种浏览器引擎统一加载和运行,降低引擎集成难度和建设成本,缩短建设周期。
本发明的目的通过以下技术方案实现:
一种支持多移动浏览器引擎加载运行的方法,其特征在于:该方法根据混合架构移动app技术分层,分为移动应用层、统一引擎、浏览器引擎、操作系统;其中:
移动应用层包括html文件、javascript脚本、css样式表、图片/音视频多媒体数据,业务应用由以上文件组成,并通过调用统一引擎提供的原生插件进行组合实现业务逻辑;
统一引擎包括引擎适配器、原生插件框架,向下适配不同浏览器引擎,向上提供统一的浏览器引擎加载接口,并提供原生插件扩展接口,应用基于插件框架自定义扩展插件,提升统一引擎的扩展性和灵活性;统一引擎适配器接口将不同浏览器引擎加载运行接口进行抽取,形成公共接口,包括引擎加载、事件监听、方法回调和引擎销毁四大方法;以经典的适配器模式,将不同引擎通过引擎适配器实现接口,将多种浏览器引擎以统一方式加载运行。
其中,原生插件框架包括插件管理、插件集和桥接器;插件管理包括插件注册、脚本注入、事件队列和插件返回,约定每个插件的实现规范,并对插件集中的每个插件调用进行统一管理,方便插件的横向扩充;插件集按照插件管理约定的实现规范进行实现,包括系统类、设备类、存储类、网络类。
桥接器将四大引擎的原生插件扩展进行桥接,插件的开发不受制于具体引擎,将引擎和插件实现进行隔离。
浏览器引擎包括google的chromium、crosswalk、腾讯x5、苹果webview,这四类为目前市面主流引擎,基本可以涵盖90%以上。
操作系统包括安卓和苹果两大移动操作系统平台,基本可以涵盖99%以上。
本发明解决了混合架构下的移动app适配不同浏览器引擎投入成本高、周期长的问题。
附图说明
图1本发明结构示意图。
图2本发明中引擎适配器架构图。
图3本发明中原生插件框架架构图。
具体实施方式
一种支持多移动浏览器引擎加载运行的方法,根据混合架构移动app技术分层,分为移动应用层、统一引擎、浏览器引擎、操作系统;见图1,移动应用层包括html文件、javascript脚本、css样式表、图片/音视频多媒体数据,业务应用由以上文件组成,并通过调用统一引擎提供的原生插件进行组合实现业务逻辑;
统一引擎包括引擎适配器、原生插件框架,向下适配不同浏览器引擎,向上提供统一的浏览器引擎加载接口,并提供原生插件扩展接口,应用基于插件框架自定义扩展插件,提升统一引擎的扩展性和灵活性;统一引擎适配器接口将不同浏览器引擎加载运行接口进行抽取,形成公共接口,包括引擎加载、事件监听、方法回调和引擎销毁四大方法;以经典的适配器模式,将不同引擎通过引擎适配器实现接口,将多种浏览器引擎以统一方式加载运行。
统一引擎为本发明的核心实现,具体包括引擎适配器、原生插件框架实现。
1.引擎适配器
引擎适配器为核心组件,作用是向下适配不同浏览器引擎,向上提供统一的浏览器引擎加载接口。引擎适配器包括web窗口管理、统一引擎适配器接口和引擎适配器。图2是引擎适配器架构图。
web窗口管理为web应用提供窗口通信、标题栏管理、访问控制和缓存更新功能。web窗口管理可以理解为一个微型浏览器,实现基本浏览器基本功能,为web应用提供基础运行环境。
统一引擎适配器接口将不同浏览器引擎加载运行接口进行抽取,形成公共接口,包括引擎加载、事件监听、方法回调和引擎销毁四大方法。以经典的适配器模式,将不同引擎通过引擎适配器实现接口,将多种浏览器引擎以统一方式加载运行,为上层的web窗口管理隔离不同浏览器引擎实现。
引擎适配器根据统一引擎适配器接口,针对不同引擎进行适配,每种引擎对应一种适配器。
2.原生插件框架
原生插件框架为本技术实现的又一核心组件,该框架提供原生插件扩展接口,方便应用基于插件框架自定义扩展插件,提升统一引擎的扩展性和灵活性。原生插件框架包括插件管理、插件集和桥接器。图3是原生插件框架架构图
插件管理包括插件注册、脚本注入、事件队列和插件返回,约定每个插件的实现规范,并对插件集中的每个插件调用进行统一管理,方便插件的横向扩充。
插件集按照插件管理约定的实现规范进行实现,包括系统类、设备类、存储类、网络类等,横向可以扩展。
桥接器按照经典的桥接模式设计实现,将四大引擎的原生插件扩展进行桥接,插件的开发不受制于具体引擎,将引擎和插件实现进行隔离。