一种基于Web+Native的移动应用开发方法技术

技术编号:38847842 阅读:11 留言:0更新日期:2023-09-17 09:57
本发明专利技术涉及一种基于Web+Native的移动应用开发方法,属于移动应用开发领域。本发明专利技术方法包括开发JSBridge实现Web端与原生Native端的双向通信;其中,所述JSBridge包括JSBridge SDK、JSBridge JavaScript和Url Scheme协议;所述JSBridge SDK提供Java接口,用于Android和iOS的原生Native端开发;所述JSBridge JavaScript提供JavaScript接口,用于Web端开发;所述Url Scheme协议,用于作为在Web端和Native端传递消息的载体。本发明专利技术通过采用Web和Native的桥接器JSBridge进行移动应用的开发,定义并实现了一套移动应用开发中Web端和原生Native端之间的通讯流程和交互规范,实现了Web端与原生Native端双向通信机制,将传统的原生Native开发方法转换为采用Web+Native相结合的开发方式。相结合的开发方式。相结合的开发方式。

【技术实现步骤摘要】
一种基于Web+Native的移动应用开发方法


[0001]本专利技术属于移动应用开发领域,尤其涉及一种基于Web+Native的移动应用开发方法。

技术介绍

[0002]随着移动设备快速发展,通讯网络4G、5G不断升级,各种移动信息化项目显著增加,使用原生Native技术开发已经不能满足高质量、高效率、低成本移动软件交付要求。
[0003]现有的移动应用开发技术中,对于Web与Native通讯,有两种主流的解决方案:
[0004]第一种是addJavaScriptInterface和JavaScriptCore方法,原生Android系统提供了addJavaScriptInterface方法,原生iOS系统提供了JavaScriptCore方法,把原生的方法直接注入到Web的window对象,然后Web端JavaScript通过window对象调用原生Native方法;该方法的缺点是:在Android SDK 17版本之前,webview内核基于webkit,未限制addJavascriptInterface的使用方法,攻击者可以通过Java反射机制实现任意命令执行,存在严重安全漏洞;而对于iOS 7版本之前,对直接注入方法支持不好。
[0005]第二种是拦截Url方法,Web端请求Url时,会触发原生Native端回调方法shouldOverrideUrlLoading和shouldStartLoadWithRequest,该方法会拦截到Url,通过解析约定协议的Url地址,来判断Web端的意图,从而执行对应的原生方法;该方法的缺点是Web端使用iframe调用机制,不能保证每次都能顺利触发shouldOverrideUrlLoading和shouldStartLoadWithRequest回调。

技术实现思路

[0006]鉴于上述的分析,本专利技术旨在提供一种基于Web+Native的移动应用开发系统,通过采用Web和Native的桥接器JSBridge进行移动应用的开发,适用于移动应用的快速开发。具体包括:
[0007]本专利技术至少可以实现下述之一的有益效果:
[0008]通过采用Web和Native的桥接器JSBridge进行移动应用的开发,定义并实现了一套移动应用开发中Web端和原生Native端之间的通讯流程和交互规范,实现了Web端与原生Native端双向通信机制,将传统的原生Native开发方法转换为采用Web+Native相结合的开发方式。由于Web端开发具有开发成本低、速度快的优势,原生Native具有兼容性好、安全性强、流畅性好的特性,解决了版本兼容性的问题和不稳定的问题,同时可以解决原来需要大量的原生Native开发人员来参与的前端开发工作的问题。
[0009]本专利技术的基于Web+Native的移动应用开发方法,可以结合水利行业的行业特点,封装水利行业的常用功能组件和计算方法,提供标准的移动应用开发接口API,使得技术人员免去了大量的水利行业知识学习成本,从而可以实现水利行业的移动应用高效快速开发。
[0010]本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书
中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过说明书、权利要求书以及附图中所特别指出的内容中来实现和获得。
附图说明
[0011]附图仅用于示出具体实施例的目的,而并不认为是对本专利技术的限制,在整个附图中,相同的参考符号表示相同的部件。
[0012]图1为本专利技术JSBridge交互图;
[0013]图2为本专利技术Native调用Web的流程图;
[0014]图3为本专利技术Web调用Native的流程图。
具体实施方式
[0015]下面结合附图来具体描述本专利技术的优选实施例,其中,附图构成本申请一部分,并与本专利技术的实施例一起用于阐释本专利技术的原理,并非用于限定本专利技术的范围。
[0016]实施例1
[0017]本专利技术的一个具体实施例,公开了一种基于Web+Native的移动应用开发方法,具体包括:
[0018]开发JSBridge实现Web端与原生Native端的双向通信;其中,所述JSBridge包括JSBridge SDK、JSBridge JavaScript和Url Scheme协议;
[0019]所述JSBridge SDK提供Java接口,用于Android和iOS的原生Native端开发;
[0020]所述JSBridge JavaScript提供JavaScript接口,用于Web端开发;
[0021]所述Url Scheme协议,用于作为在Web端和Native端传递消息的载体。
[0022]所述JSBridge包括分别在Web端和Native端使用的注册方法、请求方法和处理方法。
[0023]具体的,所述注册方法为registerHandler,所述registerHandler的参数包括方法名、方法体、高保证标识。
[0024]进一步的,所述Web端通过所述注册方法注册本地JavaScript方法,供原生Native端通过JSBridge调用。所述Native端通过所述注册方法注册本地原生方法,供Web端通过JSBridge调用。
[0025]所述JSBridge包括注册方法集合变量messageHandlers,用于存储本地创建的注册方法集合,在所述集合变量内的方法允许被调用。
[0026]具体的,所述请求方法包括callHandler,所述callHandler的参数包括方法名、传递参数和回调函数。
[0027]进一步的,所述Web端在JSBridge JavaScript上实现所述callHandler方法,所述callHandler方法执行时,判断是否有回调函数,若有,则处理所述回调函数并触发请求消息通过JSBridge发送给Native端;若无,则重构回调函数并处理后触发请求消息通过JSBridge发送给Native端;所述JSBridge包括回调函数集合变量responseCallbacks,用于存储回调函数集合,所述请求方法调用回调函数时基于回调函数ID确定相应的回调函数。实施时,原生Native端执行完对应的本地功能方法后,对结果进行回调处理:找到本地调用对应的回调函数ID,然后连同需要传递的参数信息,组装成一个JSON格式的参数,该回调参
数的JSON格式为:{responseId:回调函数id,responseData:回调数据}。
[0028]进一步的,所述Native端在JSBridge SDK上实现所述callHandler方法,所述callHandler方法执行时,判断是否有回调函数,若有,则处理所述回调函数并触发请求消息通过JSBridge发送给Web端;若无,则重构回调函数并处理后触发请求消息通过JSBridge发送给Web端;。实施时,Web端执本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Web+Native的移动应用开发方法,其特征在于,包括:开发JSBridge实现Web端与原生Native端的双向通信;其中,所述JSBridge包括JSBridge SDK、JSBridge JavaScript和Url Scheme协议;所述JSBridge SDK提供Java接口,用于Android和iOS的原生Native端开发;所述JSBridge JavaScript提供JavaScript接口,用于Web端开发;所述Url Scheme协议,用于作为在Web端和Native端传递消息的载体。2.根据权利要求1所述的开发方法,其特征在于,所述JSBridge包括分别在Web端和Native端使用的注册方法、请求方法和处理方法。3.根据权利要求2所述的开发方法,其特征在于,所述注册方法为registerHandler,所述registerHandler的参数包括方法名、方法体和高保证标识;所述Web端通过所述注册方法注册本地JavaScript方法,供原生Native端通过JSBridge调用;所述Native端通过所述注册方法注册本地原生方法,供Web端通过JSBridge调用。4.根据权利要求3所述的开发方法,其特征在于,所述JSBridge包括注册方法集合变量messageHandlers,用于存储本地创建的注册方法集合,在所述集合变量内的方法允许被调用。5.根据权利要求2所述的开发方法,其特征在于,所述请求方法包括callHandler,所述callHandler的参数包括方法名、传递参数和回调函数;所述Web端在JSBridge JavaScript上实现所述callHandler方法,所述callHandler方法执行时,判断是否有回调函数,若有,则处理所述回调函数并触发请求消息通过JSBridge发送给Native端;若无,则重构回调函数并处理后触发请求消息通过JSBridge发送给Native端;所述Native端在JSBridge SDK上实现所...

【专利技术属性】
技术研发人员:薛飞邰日坤
申请(专利权)人:北京慧图科技集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1