UIWebView跳轉(zhuǎn)原生界面

雖然webview的體驗(yàn)差,但是在App初期能節(jié)省很多開(kāi)發(fā)成本,靈活地使用也能發(fā)揮各自的優(yōu)勢(shì)。

在交互方面,可以利用webview的代理方法,根據(jù)將要請(qǐng)求的url判斷;也可以利用JS交互。前者相對(duì)簡(jiǎn)單點(diǎn),先說(shuō)第一種,Demo地址https://github.com/QiuYunxiang/WebToNavtive_1
第一種很簡(jiǎn)單,主要是依靠webview的代理方法func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool
做的測(cè)試是百度網(wǎng)址,點(diǎn)擊百度糯米時(shí)阻止web加載而進(jìn)行原生操作:

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        print(request.URL)
        if (request.URL?.absoluteString == "https://m.nuomi.com/?cid=wise_shouye_nuomi") {
            print("原生界面")
            return false
        }
        return true
    }

當(dāng)然,在我們的app當(dāng)中這個(gè)url完全不必是url,可以是一些約定好的type字段即可。

第二種利用JS實(shí)現(xiàn)交互還在學(xué)習(xí)中,先推薦一個(gè)寫的比較詳細(xì)的:http://www.lxweimin.com/p/cdaf9bc3d65d

9.9更新
利用JS實(shí)現(xiàn)交互的時(shí)候選擇了最簡(jiǎn)單的一種,直接獲取JS中的方法名,使用block的方式,具體的使用上面鏈接的文章寫的很詳細(xì)了并附有Demo。
需要注意一點(diǎn)的是,在block的回調(diào)里默認(rèn)好像是子線程,如果涉及到UI此時(shí)控制臺(tái)會(huì)打印出一些警告,需要手動(dòng)回到主線程。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 一、簡(jiǎn)介 近兩年隨著HTML5的迅速發(fā)展與日趨成熟,越來(lái)越多的移動(dòng)開(kāi)發(fā)者選擇使用HTML5來(lái)進(jìn)行混合開(kāi)發(fā),不僅節(jié)約...
    RainyGY閱讀 1,892評(píng)論 1 12
  • 一、簡(jiǎn)介 近兩年隨著HTML5的迅速發(fā)展與日趨成熟,越來(lái)越多的移動(dòng)開(kāi)發(fā)者選擇使用HTML5來(lái)進(jìn)行混合開(kāi)發(fā),不...
    寶寶teacher閱讀 2,362評(píng)論 3 15
  • http://www.cnblogs.com/mddblog/p/5281748.html 一、整體介紹 UIWe...
    F麥子閱讀 1,261評(píng)論 0 2
  • 我畢業(yè)已有兩年余了,期間似乎發(fā)生了許多事,可就當(dāng)時(shí)而言,并沒(méi)有覺(jué)得有什么波瀾不平的。卻常常因?yàn)榕笥阎g的不聯(lián)...
    陳兮閱讀 516評(píng)論 2 0
  • 從蘇州來(lái)一路輾轉(zhuǎn),到杭州已是黃昏,盛夏的驕陽(yáng)薄薄地灑在遠(yuǎn)處的地平線上。醞釀了一整季的暑氣還未褪去,細(xì)密的汗...
    揚(yáng)州飛花閱讀 404評(píng)論 0 0