標籤:
算是個人項目經驗的,印象比較深的Web+JS互動的使用
iOS原生應用與Web頁面元素互動方式有很多,JavaScriptCore、攔截協議、第三方架構WebViewJavaScriptBridge、iOS8之後的WKWebView等;
簡要記錄下之前開發用到的兩種方式:
1. 劫持頁面載入,從 UIWebVIew 的 shouldStartLoadWithRequest 方法中攔截RequestURL 判斷附加元件,代碼簡要:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *urlStr = [[request URL] absoluteString];
// 載入的url 關鍵詞需要同後台約定
NSRange range_keyWord = [urlStr rangeOfString:@"opengood://"];
if (range_keyWord.length > 0) {
[self doSomeThing];
}
return YES;
}
2. iOS7之後水果公司推出的 JavaScriptCore 架構,互動起來挺方便的
需要注意的是JS調用的方法名等需要同前端的同事商定好,最好由前端提供給你。
淺顯的說,這個方式相當於當前ViewController 成為頁面JS的代理,不同web操作都能夠有不同的JS方法與VC上面的代理方法相對應,
所以對於上面攔截web載入的方式,JavaScriptCore 的另一個優點就是提升代碼可讀性。。。
由於項目代碼內部有涉及到公司業務不方便貼出來,給大家提供兩個之前調研過的串連,裡面有詳盡的JavaScriptCore 使用
連結1
http://mp.weixin.qq.com/s?__biz=MzAxMzE2Mjc2Ng==&mid=401786074&idx=1&sn=f03d52e7b4f980d694ed4a6b0e808d3b&scene=23&srcid=0309JfhgdIYEJ4vg1YY3OD2T#rd
連結2
http://mp.weixin.qq.com/s?plg_nld=1&plg_auth=1&plg_nld=1&plg_dev=1&plg_uin=1&plg_usr=1&plg_vkey=1&plg_nld=1&plg_uin=1&mid=403853462&plg_nld=1&idx=1&scene=23&plg_auth=1&__biz=MjM5Nzc1MzU2NA%3D%3D&plg_dev=1&srcid=0308AYX0Hpyq3w7TEdwDQ8z8&plg_usr=1&sn=f7437fe6fa45e62d86c026efa4aa1645&plg_vkey=1#rd
在很多頁面涉及web互動時,就要頻繁調用JS與ViewController關聯的方法
這個我寫了一個web類目,提供下載連結,歡迎修改和完善
http://pan.baidu.com/s/1eRSt6p0
iOS開發 UIWebView+JavaScript 互動總結