• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

一步一步学习Swift之(四)玩转UIWebView

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

实现原理:

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("\n", 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 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
iOSMD5(Swift3)发布时间:2022-07-13
下一篇:
Swift图书展示项目笔记发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap