iOS原生与H5双向交互总结

2017-09-13 08:21:54来源:CSDN作者:dream9393人点击

分享

1,单向通信时候:webView可以利用代理方法截取JS,来调用原生方法

其代理方法如下:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType

2,双向通信:即JS调用原生方法之后,原生要将相关参数信息返回给H5,H5接受到参数信息后做其他处理。

推荐一个比较好的第三方库即:WebViewJavascriptBridge
地址:https://github.com/marcuswestin/WebViewJavascriptBridge
通过使用该库可以轻松实现JS与原生交互。

//初始化WebViewJavascriptBridge方法

_bridge= [WebViewJavascriptBridge bridgeForWebView:self.BookWebView webViewDelegate:self handler:^(id data,WVJBResponseCallback responseCallback) {}];

原生与JS约定接口名为“testObjcCallback”,data是JS传递过来的信息,responseCallback来将信息传递给JS

[_bridge registerHandler:@"testObjcCallback" handler:^(id  data,WVJBResponseCallback responseCallback) {responseCallback("postInfomationToJS")}];

3,UIWebView页面信息的离线缓存

推荐一个比较好的第三方库RNCachingURLProtocol ,只需要在AppDelegate中加入下面方法即可。

[NSURLProtocolregisterClass:[RNCachingURLProtocolclass]];

地址:https://github.com/rnapier/RNCachingURLProtocol

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台