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 

  • 相关阅读:
    Spring之循环依赖与解决方案
    ipv4+ipv6网络中的DDNS
    NAT、PAT、DMZ、端口映射、端口转发、UPNP
    如何实现内外网或多网络环境下上网?路由route
    局域网学习MAC地址?ping+arp
    网络故障排查?ping和trace*
    有了MAC地址,为什么还要用IP地址?
    Nginx原理解析
    磁盘io
    last总结
  • 原文地址:https://www.cnblogs.com/wuxian/p/4470634.html
Copyright © 2011-2022 走看看