一个WKWebView对象显示交互式Web内容,例如一个应用程序的浏览器。你可以使用WKWebView类嵌入Web内容的应用程序。这样做,创造一个WKWebView对象,设置它为视角,并发送一个请求来加载网页内容。
代码实例,苹果官方文档:(苹果官方文档使用最新的swift版本swift3)
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate {
var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string: "https://www.apple.com")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}}
一下示例代码使用xcode7.3 swift2.2版本:
//
// WKViewController.swift
// WebviewTest
//
// Created by Zzcz on 2017/3/13.
// Copyright © 2017年 fly. All rights reserved.
//
import UIKit
import WebKit
class WKViewController: UIViewController,WKUIDelegate ,WKNavigationDelegate{
var webView : WKWebView!
var urlString = "https://www.apple.com"
override func loadView() {
let webConfiguratiojn = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguratiojn)
webView.UIDelegate = self
webView.navigationDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let myURL = NSURL.init(string: urlString)
let myRequest = NSURLRequest.init(URL: myURL!)
webView.loadRequest(myRequest)
// Do any additional setup after loading the view.
}
}
对比UIWebView,WKWebView似乎更为强大,WKWebView允许用户通过网页历史前进后退、前进,用goback()和goforward()方法动作按钮。使用cangoback和cangoforward属性禁用的按钮时,用户不能在一个方向移动。
WKWebView的常用属性或是WKWebView的视图信息
var scrollView: UIScrollView
The scroll view associated with the web view.//与Web视图关联的滚动视图。
var title: String?
The page title.//页面标题。
var url: URL?
The active URL.//活动网址。也可理解为网址链接
var customUserAgent: String?
The custom user agent string.//自定义用户代理字符串。
var serverTrust: SecTrust?
A SecTrustRef object for the currently committed navigation.//目前致力于导航的sectrustref对象。
var certificateChain: [Any]
An array of objects forming the certificate chain for the currently committed navigation.//为当前提交的导航形成证书链的对象数组。
WKWebView的代理:
webView.UIDelegate = self//WKUIDelegate
webView.navigationDelegate = self//WKNavigationDelegate
加载内容:
var estimatedProgress: Double//已加载当前导航的几分之一的估计值。
var hasOnlySecureContent: Bool// 一个布尔值,指示页面上的所有资源是否已通过安全加密连接加载。
func loadHTMLString(String, baseURL: URL?)// 设置网页内容和基本网址。
var isLoading: Bool// 一个布尔值,该值指示视图(WKWebView)是否正在加载内容。
func reload()// 重新载入当前页面。 可以理解为刷新数据
func reloadFromOrigin()// 重新载入当前页面,进行端到端的验证使用缓存验证条件,如果可能的话。
func stopLoading()// 停止加载当前页上的所有资源。
func load(Data, mimeType: String, characterEncodingName: String, baseURL: URL)// 设置网页内容和基本网址。
func loadFileURL(URL, allowingReadAccessTo: URL)// 导航到所请求的文件系统上的文件的URL
缩放内容:(WKWebView的属性)
var allowsMagnification: Bool// 一个布尔值,指示是否放大手势会改变web视图的放大倍数。
var magnification: CGFloat// 当前缩放页面内容的因素。
func setMagnification(CGFloat, centeredAt: CGPoint)// 按指定的因子缩放页面内容,并将结果集中在指定的点上。理解为在某一点缩放内容
导航:
var allowsBackForwardNavigationGestures: Bool// 一个布尔值,指示是否将触发水平滑动手势前进后退列表导航。
var backForwardList: WKBackForwardList// Web视图的前向列表。
var canGoBack: Bool// 一个布尔值,指示是否可以导航到前进后退列表有一回项目。
var canGoForward: Bool// 一个布尔值,指示是否可以导航到后面转发列表有一个项目。
var allowsLinkPreview: Bool// 一个布尔值,该值决定是否按下链接显示链接的目的地预览。
func goBack()// 导航到后面的项目在后面转发列表。
func goForward()// 导航到了项目中的反馈表。
func go(to: WKBackForwardListItem)// 导航到一个项目从后向前列表并设置为当前项目。
func load(URLRequest)// 导航到一个URL。加载网络地址
执行JavaScript
func evaluateJavaScript(String, completionHandler: ((Any?, Error?) -> Void)? = nil)// 评估或是获得一个JavaScript字符串。
实例方法:
func goBack(Any?)//导航到后面的项目在后面转发列表。
func goForward(Any?)//导航到了项目中的反馈表。
func reload(Any?)//重新载入当前页面。
func reloadFromOrigin(Any?)//重新载入当前页面,进行端到端的验证使用缓存验证条件,如果可能的话。
func stopLoading(Any?)//停止加载当前页上的所有资源。