swift 中跳转web view的两种方法

    xiaoxiao2022-06-24  49

    首先 遵循代理  引入头文件

    #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.

         }

         */

        

    }

    转载请注明原文地址: https://ju.6miu.com/read-1123979.html

    最新回复(0)