一般应用开发,用到webview和JS交互的地方特别多,当然也有很多优秀的第三方可以使用,例如:WebViewJavascriptBridge,有兴趣的可以研究下,非常好用的一个框架,本文主要概括下苹果提供的原声控件和JS互相简单调用。webview以及WKWebView。
iOS8.0之前,苹果只提供UIwebview一个控件,这个控件JS调用OC主要通过UIwebview的代理方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationTyp
在这个方法里面。可以拿到每一个URL,通过对URL的参数字段监测分析,可以实现JS调用OC代码。
OC调用JS主要通过UIwebview的一个方法:[webView stringByEvaluatingJavaScriptFromString:@"JS相关代码;"] 这样就能实现简单的OC调用JS。
iOS8.0之后,苹果推出了WKWebView,webkit使用WKWebView来代替IOS的UIWebView和OSX的WebView,并且使用Nitro JavaScript引擎,这意味着所有第三方浏览器运行JavaScript将会跟safari一样快。在UIWebView,使用NSURLCache缓存,通过setSharedURLCache可以设置成我们