swift 中跳转web view的两种方法

首先 遵循代理  引入头文件

#import <WebKit/WebKit.h>


第一种情况  直接跳转  了解不含特殊字符的 

import UIKit


class NewsViewController: UIViewController,WKNavigationDelegate,UIScrollViewDelegate {

    

    var webView : WKWebView = WKWebView()

    

    override func viewWillAppear(animated: Bool) {

        

        super.viewWillAppear(animated)

        

        self.navigationController?.navigationBar.hidden = false

        

    }

    

    override func viewWillDisappear(animated: Bool) {

    

            super.viewWillDisappear(animated)

    

            self.webView.scrollView.delegate = nil

            

        }


    override func viewDidLoad() {

        

        super.viewDidLoad()

        

        self.title = "高速新闻"

        

        var webview : WKWebView = WKWebView.init(frame: CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT))

        

        webview.navigationDelegate = self

        

        webview.scrollView.delegate = self

        

        self.view.addSubview(webview)

        

        let url = NSURL(string: "http://write.blog.csdn.net/postedit?ticket=ST-18508-huyngj2vPrUyzINKQTQb-passport.csdn.net")

        

        let request = NSURLRequest(URL: url!)

        

        webview.loadRequest(request)

        

        self.webView = webview

        

       // 打开左划回退功能:

        self.webView.allowsBackForwardNavigationGestures = true

        

    }


    

    func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {

        

        NSUserDefaults.standardUserDefaults().setInteger(0, forKey: "WebKitCacheModelPreferenceKey")

        

        NSUserDefaults.standardUserDefaults().setBool(false, forKey: "WebKitDiskImageCacheEnabled")

        

        NSUserDefaults.standardUserDefaults().setBool(false, forKey: "WebKitOfflineWebApplicationCacheEnabled")

        

        NSUserDefaults.standardUserDefaults().synchronize()

        

        

    }

    

    func scrollViewDidScroll(scrollView: UIScrollView) {

        

        if (scrollView.contentOffset.y > 100) {

            

            self.navigationItem.title = "高速新闻"

            

        } else {

            

            self.navigationItem.title = "高速新闻"

        }

        

        

    }


    

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    


    /*

    // MARK: - Navigation


    // In a storyboard-based application, you will often want to do a little preparation before navigation

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

        // Get the new view controller using segue.destinationViewController.

        // Pass the selected object to the new view controller.

    }

    */


}


第二种情况   链接中含有特殊字符的 例如汉字


import UIKit


class HighSpeedRoadVC: UIViewController,WKNavigationDelegate,UIScrollViewDelegate {

    

    var webView : WKWebView = WKWebView()

//    var web : UIWebView = UIWebView()

    

    override func viewWillAppear(animated: Bool) {

        

        super.viewWillAppear(animated)

        

        self.navigationController?.navigationBar.hidden = false

        

    }

    

    override func viewWillDisappear(animated: Bool) {

        

        super.viewWillDisappear(animated)

        

        self.webView.scrollView.delegate = nil

        

    }

    

    override func viewDidLoad() {

        

        super.viewDidLoad()

        

        self.title = "河南高速路况"

        

        var webview : WKWebView = WKWebView.init(frame: CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT))

        

        webview.navigationDelegate = self

        

        webview.scrollView.delegate = self

        

        self.view.addSubview(webview)

        

        let baseUrl = "http://m.weibo.cn/k/"

        

        let str = "河南高速路况?from=feed"  //此处是链接中含的特殊字符 

        

        let utf8Str = str.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())

        

        let url = NSURL(string: baseUrl + utf8Str!)

        

        let request = NSURLRequest(URL: url!)

        

        webview.loadRequest(request)

        

        self.webView = webview

        

        // 打开左划回退功能:

        self.webView.allowsBackForwardNavigationGestures = true

        

    }

    

    

    func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {

        

        NSUserDefaults.standardUserDefaults().setInteger(0, forKey: "WebKitCacheModelPreferenceKey")

        

        NSUserDefaults.standardUserDefaults().setBool(false, forKey: "WebKitDiskImageCacheEnabled")

        

        NSUserDefaults.standardUserDefaults().setBool(false, forKey: "WebKitOfflineWebApplicationCacheEnabled")

        

        NSUserDefaults.standardUserDefaults().synchronize()

        

        

    }

    

    func scrollViewDidScroll(scrollView: UIScrollView) {

        

        if (scrollView.contentOffset.y > 100) {

            

            self.navigationItem.title = "河南高速路况"

            

        } else {

            

            self.navigationItem.title = "河南高速路况"

        }

        

        

    }

       

    func webView(webView: WKWebView, didFailNavigation navigation: WKNavigation!, withError error: NSError) {

        

        

        print("error:\(error)")

        

    }

    

    

    

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    

    

    /*

     // MARK: - Navigation

     

     // In a storyboard-based application, you will often want to do a little preparation before navigation

     override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

     // Get the new view controller using segue.destinationViewController.

     // Pass the selected object to the new view controller.

     }

     */

    

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值