博客> 简单的js调用本地方法的封装实现介绍
简单的js调用本地方法的封装实现介绍
2017-11-25 08:01 评论:0 阅读:265 acekiller
ios oc web js javascrpitCore

JS调用本地方法的封装框架使用。

注:下载地址 https://github.com/acekiller/FMBridgeJSOC

最近的工作中,出于项目需要在oc中与js进行数据。最重要的是js调用web端的数据。但是由于涉及到的数据影响着web端网络的请求,所以在链接请求开始之后就要从客户端读取数据。开始的时候,我们直接采用实现JSExport协议的方式来实现。并将其注册到context的window的app中。一切都还比较顺利。交互也没什么问题。 工作就这样进行着,然而,在涉及到网页间跳转时,有调用本地注册的方法时就存在方法未注册的状况了。究其原因在于,采用注册党window的app中,涉及到页面的初始化时机问题。走到这一步,细细想一下,有问题了哦。 于是,换种方法,将方法直接注册到window上。好在这种方法确实可行。于是实现了一个封装https://github.com/acekiller/FMBridgeJSOC 从而达到让js便捷调用本地方法的目的。

其它不多说了。这里介绍一下FMBridgeJSOC。

FMBridgeJSOC采用了极简的使用封装,使用pod的方式管理,具体使用demo参考本实例。我们只需要将实现的需要供js调用的对想的方法用 UIWebView的实例方法- (void)registerJSCallSelector:(SEL)aSelector withTarget:(id)target来在使用之前注册到web的window中就好。 使用的时候,只需在web中将对应实现的个段组合,成为js方法明,调用就好。 原本计划想要采用直接以类似JSExport的事项注册对象就可以实现的方式,但是出于时间和自己懒惰的原因,只提供了一个简化版,不过好在简化版比较容易理解。更高级的实现等以后在做吧。 特别说明,此框架支持可变参数和block处理哦。 如果大家觉得这个实现不错,就给点人气fork或star一下吧。地址 https://github.com/acekiller/FMBridgeJSOC

收藏
0
sina weixin mail 回到顶部