1. 程式人生 > >iOS原生與H5雙向互動總結

iOS原生與H5雙向互動總結

1,單向通訊時候:webView可以利用代理方法擷取JS,來呼叫原生方法

其代理方法如下:

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

2,雙向通訊:即JS呼叫原生方法之後,原生要將相關引數資訊返回給H5,H5接受到引數資訊後做其他處理。

//初始化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]];