iOS如何监控js ,可以通过js调用oc方法
JS 和 iOS 互调是个很经典的问题,我们先来看下不借助外部框架怎么搞的
不借助外部框架【WebView】
iOS 调用 JS
[webView stringByEvaluatingJavaScriptFromString:@"alert('boom shaka laka')"];
非常的 easy
JS 调用 iOS,我比较推崇的是调用一个 url,然后自己定义解析规则的方式。
我举个?吧,下面是一段 html 代码,
<a href="app://locations/get">
用户在你的 WebView 上面点了这样一个连接,这个时候会调起
-
(BOOL)webView:(UIWebView )webView shouldStartLoadWithRequest:(NSURLRequest )request navigationType:(UIWebViewNavigationType)navigationType
这个时候你解析下 request.URL 做下判断就ok了。。
不借助外部框架 【WKWebView】
WKWebView 性能更屌,内存更少,但是缓存之类的设置非常的忧伤。。。Cookie 更是诡异
WKWebView 的坑看这里
https://github.com/ShingoFukuyama/WKWebViewTips/blob/master/README.md
iOS 调用 JS
一样很 easy,这样调用就好了
evaluateJavaScript:script completionHandler:^(id result, NSError *error)
JS 调用 iOS
一样的。。找到 url 处理
(void)webView:(WKWebView )webView decidePolicyForNavigationAction:(WKNavigationAction )navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
可以用的轮子
WebViewJavascriptBridge
https://github.com/marcuswestin/
= =其实我不太喜欢这个轮子。。。用起来太绕了
JSPatch
https://github.com/bang590/JSPatch
这个好像跟问题没有关系。。不过请关注。。神器。
Hybrid App 的坑其实也不多。。
参考这个看看