首先 遵循代理 引入头文件
#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.
}
*/
}