zoukankan      html  css  js  c++  java
  • 一步一步学习Swift之(四)玩转UIWebView

    实现原理:

    1.通过UIWebView的stringByEvaluatingJavaScriptFromString方法来触发脚本

    2.通过自定义连接来触发oc代码

    实现过程

    @IBOutlet weak var webView: UIWebView!
        override func viewDidLoad() {
            super.viewDidLoad()
           webView.loadRequest(NSURLRequest(URL: NSURL(string: "http://passport.cnblogs.com/user/signin")!))
            webView.delegate=self
        }
        //连接改变时
        func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool{
           var rurl =  request.URL?.absoluteString
            if (rurl!.hasPrefix("ios:")){
              var method =  rurl!.componentsSeparatedByString("@")[1]
                if method == "signin_go"{
                     signin_go()
                }
                return false
            }
           return true
        }
        //加载完成时
        func webViewDidFinishLoad(webView: UIWebView){
            //注入脚本,这个脚本把登录方法js重写为连接
            var jsPath =  NSBundle.mainBundle().pathForResource("app", ofType: "js")
            var jsContent:NSString = NSString (contentsOfFile: jsPath!, encoding: 0, error: nil)!
            jsContent=jsContent.stringByReplacingOccurrencesOfString("
    ", withString: "")
            webView.stringByEvaluatingJavaScriptFromString(jsContent as String)
        }
        
        func signin_go(){
        NSLog("-我执行了signin_go-")
        }
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.text = '
    function signin_go(){
       location.href="ios:@signin_go";
    }
    ';
    document.getElementsByTagName('head')[0].appendChild(script);

    转载请注明来源:http://www.cnblogs.com/wuxian/p/4470634.html 

  • 相关阅读:
    Vue中父子组件的通讯
    字符串svg代码转 base64 url
    Vue 中封装 websocket
    vue中使用Echarts,销毁原有的图表进行重新赋值
    Vue中常用表格(增删改查)
    刷新组件
    hdu1272小希的迷宫(并查集+判环)
    九余数定理
    Runtime Error可能的情况
    hdu2035 人见人爱A^B题解
  • 原文地址:https://www.cnblogs.com/wuxian/p/4470634.html
Copyright © 2011-2022 走看看