一种插件化JSBridge的实现方法与流程

文档序号:15930927发布日期:2018-11-14 01:37阅读:502来源:国知局

本发明涉及native代码与js代码的通信管理技术领域,具体说是一种插件化jsbridge的实现方法。

背景技术

现在的app很多是native和h5混合开发的,重要模块是native开发,保证了app的流畅度和比较好的用户体验;要求及时更新的模块是h5开发,如比赛页面,广告活动页面。用h5开发的好处是开发周期短,可以在线更新。

h5是html5的简称。html最新的修订版本,是一种超文本标记语言。h5先调用系统的浏览器内核,相当于是在网页中进行操作,较native稳定性稍差、速度较慢。优点在于可以跨平台,同时开发容易、效率高、方便调试。

native使用原生系统内核,相当于直接在系统上操作,更加稳定、快速,可以使用非常非常多的api,因此开发出来的功能较佳。

h5在性能上,没有纯native好,而且在体验上也没有native那么好。

jsbridge是native代码与js代码的通信桥梁。目前的一种统一方案是:h5触发urlscheme->native捕获urlscheme->原生分析,执行->原生调用h5。

urlscheme简单的说就是一个可以让app相互之间可以跳转的协议。每个app的urlscheme都是不一样的,如果存在一样的urlscheme,那么系统就会响应先安装那个app的urlscheme,因为后安装的app的urlscheme被覆盖掉了,是不能被调用的。

jsbridge就是定义native和js的通信(交互的桥梁),native只通过一个固定的桥对象调用js,js也只通过固定的桥对象调用native。js可以通过jsbridge调用native方法,native可以通过jsbridge调用js方法。

随着业务的增多,native会给js提供越来越多的接口,但是打开一个页面时,通常这个页面只需要调用与当前页面相关的接口,其它业务相关的接口用不着,这样就不需要加载这些接口,因此需要对jsbridge进行优化,以提高运行效率,方便调试、维护。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种插件化jsbridge的实现方法,将native提供给js的接口按业务划分,并进行插件化,划分成必选插件和可选插件,使接口按业务分开到各个插件中,提高运行效率,方便调试、维护。

为达到以上目的,本发明采取的技术方案是:

一种插件化jsbridge的实现方法,其特征在于,包括如下步骤:

按业务将jsbridge通过标识分为必选jsbridge插件和可选jsbridge插件,

app启动后,在进入h5页面时,对jsbridge进行初始化处理,

根据标识加载必选jsbridge插件,

根据h5页面的内容,根据标识加载涉及其业务响应的可选jsbridge插件,

发出初始化完毕信号,

h5页面尝试调用jsbridge中的方法。

在上述技术方案的基础上,h5页面尝试调用jsbridge中的方法时,jsbridge根据方法解析其对应的插件和实现,

执行响应的native代码,

调用h5传递过来的回调方法。

在上述技术方案的基础上,所述jsbridge插件和业务的对应关系包括:

jshttprequestplugin插件,封装有给js提供的http请求接口,用于给h5提供网络请求支持,

jsuserplugin插件,封装有给js提供的与用户操作相关的接口,

jsshareplugin插件,封装有给js提供的分享相关的接口,用于提供分享多媒体资源支持,

jscommonplugin插件,封装有给js提供的通用接口。

在上述技术方案的基础上,可选jsbridge插件采用挂接的方式载入jsbridge。

本发明所述的插件化jsbridge的实现方法,将native提供给js的接口按业务划分,并进行插件化,划分成必选插件和可选插件,使接口按业务分开到各个插件中,提高运行效率,方便调试、维护。

本发明所述的插件化jsbridge的实现方法,具有以下优点:

1、将接口按业务分开到各个插件中,代码易于维护;

2、将接口插件做成可选的,运行效率高;

3、拥有统一的入口,方便调试。

附图说明

本发明有如下附图:

图1本发明的流程图。

具体实施方式

以下结合附图对本发明作进一步详细说明。

如图1所示,本发明所述的插件化jsbridge的实现方法,包括如下步骤:

按业务将jsbridge通过标识分为必选jsbridge插件和可选jsbridge插件,

app启动后,在进入h5页面时,对jsbridge进行初始化处理,

根据标识加载必选jsbridge插件,

根据h5页面的内容,根据标识加载涉及其业务响应的可选jsbridge插件,

发出初始化完毕信号,

h5页面尝试调用jsbridge中的方法。

在上述技术方案的基础上,h5页面尝试调用jsbridge中的方法时,jsbridge根据方法解析其对应的插件和实现,

执行响应的native代码,

调用h5传递过来的回调方法。

在上述技术方案的基础上,所述jsbridge插件和业务的对应关系包括:

jshttprequestplugin插件,封装有给js提供的http请求接口,用于给h5提供网络请求支持,

jsuserplugin插件,封装有给js提供的与用户操作相关的接口,

jsshareplugin插件,封装有给js提供的分享相关的接口,用于提供分享多媒体资源支持,

jscommonplugin插件,封装有给js提供的通用接口。

在上述技术方案的基础上,所述给js提供的http请求接口,具体包括:http的get接口,post接口,

所述给js提供的与用户操作相关的接口,具体包括:跳转到用户的个人中心页面接口,

所述给js提供的分享相关的接口,具体包括:分享图片接口,分享音频接口,分享视频接口,

所述给js提供的通用接口,具体包括:toast提示接口,alert提示接口,confirm弹框提示接口,readcache接口,writecache接口。

在上述技术方案的基础上,可选jsbridge插件采用挂接的方式载入jsbridge。

在上述技术方案的基础上,给js提供的通用接口预设为必选jsbridge插件,与业务有关系则预设为可选jsbridge插件。

例如:

jscommonplugin这个是通用插件,就是必选的插件,native会默认加载这个插件,h5可以直接调用里面的方法;

jsshareplugin,是与分享业务相关的,有的h5有分享操作,有的h5没有分享,所以这个插件在有的情况下才用的到,那么就将其分为可选插件。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1