美文网首页
UIWebView跳转原生界面

UIWebView跳转原生界面

作者: 举个栗子wow | 来源:发表于2016-08-29 16:46 被阅读165次

    虽然webview的体验差,但是在App初期能节省很多开发成本,灵活地使用也能发挥各自的优势。

    在交互方面,可以利用webview的代理方法,根据将要请求的url判断;也可以利用JS交互。前者相对简单点,先说第一种,Demo地址https://github.com/QiuYunxiang/WebToNavtive_1
    第一种很简单,主要是依靠webview的代理方法func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool
    做的测试是百度网址,点击百度糯米时阻止web加载而进行原生操作:

    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
        }
    

    当然,在我们的app当中这个url完全不必是url,可以是一些约定好的type字段即可。

    第二种利用JS实现交互还在学习中,先推荐一个写的比较详细的:http://www.jianshu.com/p/cdaf9bc3d65d

    9.9更新
    利用JS实现交互的时候选择了最简单的一种,直接获取JS中的方法名,使用block的方式,具体的使用上面链接的文章写的很详细了并附有Demo。
    需要注意一点的是,在block的回调里默认好像是子线程,如果涉及到UI此时控制台会打印出一些警告,需要手动回到主线程。

    相关文章

      网友评论

          本文标题:UIWebView跳转原生界面

          本文链接:https://www.haomeiwen.com/subject/uwixettx.html