关于JS与OC交互的简单总结

    虽然Xcode中自带webView的 stringByEvaluatingJavaScriptFromString; 这种与JavaScript交互的方法,但这只是OC主动与JS进行单项交互的方法,并且没有返回值。
    在很多用到UIWebView控件的项目中,都需要实现OC和JS之间的双向交互,这时候,我个人习惯用‘WebViewJavascriptBridge’这个开源库;

下载链接:http://download.csdn.net/detail/zyjn2012/7302065

这个类库包括这三个文件,两个OC文件和一个JS脚本文件;


首先双向交互的原理是:类似于iOS中的notificationCenter的原理。如果OC需要主动调用JS,那么JS需要先注册一个侦听事件"

bridge.registerHandler('testJavascriptHandler',function(data, responseCallback)",当OC向JS发送"callHandler:@"testJavascriptHandler"data:dataresponseCallback:^(id response){}
"事件的时候,JS会通过’testJavascriptHandler‘这个字段调用侦听事件中的function()函数,返回参数data 给OC,OC就会在相对应的block代码块中收到返回值并进行相对应的代码处理。

反之是相同的原理:JS主动调用OC时,OC需要先注册一个侦听事件“registerHandler:@"testObjcCallback"handler:^(id data,WVJBResponseCallback responseCallback){}”,当JS向OC发送“bridge.callHandler('testObjcCallback', {'foo':'bar'},function(response) {  })”时,会通过"testObjctCallback"字段调用侦听事件中的函数,返回data给JS。

在OC与JS进行交互的时候,一方如果发送send方法,另一方必须有init的方法与之对应;

至于WebViewJavascriptBridge这个开源库的需要用的方法的详细注解在我的Demo中都有提到,中文注释!!!

    例如:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值