iOS開發 UIWebView+JavaScript 互動總結

來源:互聯網
上載者:User

標籤:

算是個人項目經驗的,印象比較深的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 互動總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.