一种基于iOS平台javascript定制服务化的方法与流程

文档序号:28350006发布日期:2022-01-05 11:38阅读:140来源:国知局
一种基于iOS平台javascript定制服务化的方法与流程
一种基于ios平台javascript定制服务化的方法
技术领域
1.本发明涉及的是ios开发技术领域,具体涉及一种基于ios平台javascript定制服务化的方法。


背景技术:

2.ios和javascript交互,是指在ios开发用webview展示手机网页,涉及到objetive

c和javascript的交互。定制服务化能很好让网页和app之间进行通信,让网页开发能获得更多原生的服务。比如网页调用app特定的页面、系统相机、精准定位、双向数据传输等。其主要用到的原生底层框架有webkit.frameworkhe以及javascriptcore.framework。然而webview和javascript交互在ios开发中没有实现封装服务化,使得从零开发成本高、效率低下、代码繁杂。
3.为了解决i0s uiwebview和javascript交互中,现有技术没有实现的封装服务化的问题,开发一种基于ios平台javascript定制服务化的方法尤为必要。


技术实现要素:

4.针对现有技术上存在的不足,本发明目的是在于提供一种基于ios平台javascript定制服务化的方法,实现封装服务化,开发成本低,效率高,且代码简单,丰富了客户端定制功能,易于推广使用。
5.为了实现上述目的,本发明是通过如下的技术方案来实现:一种基于ios平台javascript定制服务化的方法,其步骤为:
6.(1)webview初始化时,内部实例化一个协议解析器,命名为ctjsbridgewebviewdelegate;
7.(2)网页端的javascript把参数传递给ios webview;
8.(3)ctjsbridgewebviewdelegate判断是否为规定的自定义协议;
9.(4)若是,则传递给ctjsbridgewebviewdelegate进行解析;若否,则交给webview默认处理方式,结束操作;
10.(5)ctjsbridgewebviewdelegate解析完成后,通过反射调起自定义协议对应的ios平台定制服务;
11.(6)ctjsbridgewebviewdelegate判断是否调起定制服务成功;
12.(7)若是,则定制服务处理内部的服务;若否,则协议解析转发器回调处理失败参数的结果传递给javascript,结束操作直至下次操作判断自定义协议有对应的定制服务。
13.作为优选,所述的步骤(2)中javascript把参数通过字典或者json的形式传递给ios webview。
14.作为优选,所述的步骤(3)中ctjsbridgewebviewdelegate判断协议头是否为

jwhybrid’或者

jwnativeapi’。
15.本发明的有益效果:本方法通过服务化技术,让javascript获得更多的原生平台
功能或者传输数据给原生平台的功能,丰富了客户端定制功能,实现封装服务化,代码简单,开发成本低,效率高,应用前景广阔。
附图说明
16.下面结合附图和具体实施方式来详细说明本发明;
17.图1为本发明的整体框架结构示意图;
18.图2为本发明的流程图。
具体实施方式
19.为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
20.参照图1

2,本具体实施方式采用以下技术方案:一种基于ios平台javascript定制服务化的方法,其步骤为:
21.(1)webview初始化时,内部实例化一个协议解析器,命名为ctjsbridgewebviewdelegate;
22.(2)网页端的javascript把参数通过字典或者json的形式传递给ios webview;
23.(3)ctjsbridgewebviewdelegate判断是否为规定的自定义协议;
24.(4)若是,则传递给ctjsbridgewebviewdelegate进行解析;若否,则交给webview默认处理方式,结束操作;
25.(5)ctjsbridgewebviewdelegate解析完成后,通过反射调起自定义协议对应的i0s平台定制服务;
26.(6)ctjsbridgewebviewdelegate判断是否调起定制服务成功;
27.(7)若是,则定制服务处理内部的服务;若否,则协议解析转发器回调处理失败参数的结果传递给javascript,结束操作直至下次操作判断自定义协议有对应的定制服务。
28.值得注意的是,所述的步骤(3)中ctjsbridgewebviewdelegate判断协议头是否为

jwhybrid’或者

jwnativeapi’。
29.本具体实施方式的应用场景如下:
30.①
javascript封装服务化,实现把javascript接上更多的原生功能,把自定义的平台功能整合成一个个定制服务,达到复用的效果。比如ios端webview显示的网页操作过程中,需要调起app动画效果丰富的ui、满足用户体验的原生自定义弹窗、app内置支付服务、app内置商品详情等,即可只需编写对应的窗口服务,javascript根据需要在任何场景调用,提高用户体验,服务实现简单,可以重复利用。
31.②
网页端通过javascript获取定位经常不准确,可以将i0s的定位功能作为服务,提供给javascript在任何需要的场景调用,定位更精准,服务实现简单,可以重复利用。
32.③
网页端如果要把用户信息传送给app,可以通过window.callback()函数把数据传输给app,app通过前面提到的ctjsbridgewebviewdelegate接受数据或者app把数据传输给h5(例如自动登录功能),实现更加灵活的交互。
33.例如在一个h5个人中心页面,需登录才能更换头像。此时通过ctjsbridgewebviewdelegate,app直接把用户登录信息传输给javascript,javascript即
可实现自动登录刷新个人中心页面,无需输入账号密码。接着,用户点击更换头像按钮,javascript发送协议请求给ctjsbridgewebviewdelegate,ctjsbridgewebviewdelegate识别到是系统相册服务,就会调起原生平台的系统相册服务,从而为用户实现快速便捷的服务。
34.本具体实施方式实现封装服务化,通过服务化技术,让javascript获得更多的原生平台功能或者传输数据给原生平台的功能,丰富了客户端定制功能,具有广阔的市场应用前景。
35.以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1