WebView可以定义为可以在IOS应用程序中显示交互式Web内容并加载IN-App浏览器中的HTML字符串。它是WKWebView类的一个实例,它继承了UIView类。
class WKWebView : UIView
如上所述,要在IOS应用程序中加载Web内容,无涯教程可以使用WebView对象。无涯教程需要做的就是,创建一个WKWebView对象,将其设置为视图,并将其发送要加载Web内容的请求。
wkwebview属性和方法
WKWebView类包含可用于自定义WebView的行为的属性和方法。无涯教程可以让用户使用goback()和goforward()方法以向后和向前方向导航。要检查用户是否可以在特定方向上移动,无涯教程可以使用布尔属性罐和Cangoforward。
WebView还将电话号码转换为TIPPAPT的链接,用户将使用预先填写的点击号码重定向到拨号器焊盘。
wkwebview属性
| sn | 属性 | 描述 |
|---|---|---|
| 1 | var scrollView: UIScrollView | 它表示与Web视图关联的滚动视图。 |
| 2 | var title: String? | 它是一个字符串对象,它表示页面标题。 |
| 3 | var url: URL? | 它是URL类的一个实例,它表示活动URL。 |
| 4 | var customUserAgent: String? | 它是一个字符串对象,它表示自定义用户代理字符串。 |
| 5 | var serverTrust: SecTrust? | 用于当前提交的导航的sectrustef对象。 |
| 6 | var navigationDelegate: WKNavigationDelegate? | 它是web视图的导航委托。 |
| 7 | var uiDelegate: WKUIDelegate? | 它代表了Web View的UI委托。 |
| 8 | var estimatedProgress: Double | 是一个双重类型对象,它表示已经加载了当前导航的几部分的估计。 |
| 9 | var hasOnlySecureContent: Bool | 是一个布尔类型值,确定页面上的所有资源是否已通过安全加密连接加载。 |
| 10 | var isLoading: Bool | 它是一个布尔类型值,指示视图是否正在加载Web内容。 |
| 11 | var allowsMagnification: Bool | 是一个布尔类型值,指示放大手势是否会改变Web视图的放大倍数。 |
| 12 | var magnification: CGFloat | 它是目前网页内容缩放的因素。 |
| 13 | var allowsBackForwardNavigationGestures: Bool | 布尔值,指示水平刷手势是否将触发前后列表导航。 |
| 14 | var backForwardList: WKBackForwardList | 它是Web View的背向前列表。 |
| 15 | var canGoBack: Bool | 它是一个布尔类型值,指示背向前列表中存在的背面项。 |
| 16 | var canGoForward: Bool | 是一个布尔类型值,指示背向前列表中存在的前向项目。 |
| 17 | var allowsLinkPreview: Bool | 是一个布尔类型值,可以控制链接上的点击是否会显示链路目的地的预览。 |
WKWebview方法
| SN | Method | Description |
|---|---|---|
| 1 | func loadHTMLString(String, baseURL: URL?) -> WKNavigation? | 此方法用于设置网页内容和基本 URL。 |
| 2 | func reload() -> WKNavigation? | 此方法重新加载当前页面。 |
| 3 | func reloadFromOrigin() -> WKNavigation? | 此方法重新加载当前页面,如果可能,使用缓存验证条件执行端到端重新验证。 |
| 4 | func stopLoading(Any?) | 该方法停止加载当前页面的所有资源。 |
| 5 | func load(Data, mimeType: String, characterEncodingName: String, baseURL: URL) -> WKNavigation? | 此方法用于设置网页内容和基本 url。 |
| 6 | func loadFileURL(URL, allowingReadAccessTo: URL) -> WKNavigation? | 此方法导航到文件系统上请求的文件 URL。 |
| 7 | func setMagnification(CGFloat, centeredAt: CGPoint) | 此方法用于按指定因子缩放页面内容并将结果集中在指定点上。 |
| 8 | func goBack() -> WKNavigation? | 此方法导航到后退列表中存在的后退项目。 |
| 10 | func goForward() -> WKNavigation? | 此方法导航到后退列表中存在的前进项目。 |
| 12 | func go(to: WKBackForwardListItem) -> WKNavigation? | 此方法从后退列表导航到指定项目。 |
| 13 | func load(URLRequest) -> WKNavigation? | 此方法加载指定 URL 请求的内容。 |
| 14 | func evaluateJavaScript(String, completionHandler: ((Any?, Error?) -> Void)?) | 此方法用于评估 javascript 字符串。 |
| 15 | func takeSnapshot(with: WKSnapshotConfiguration?, completionHandler: (UIImage?, Error?) -> Void) | 此方法获取视图可见视口的快照。 |
示例:以编程方式创建WKWebView
import UIKit
import WebKit
class ViewController: UIViewController {
</span><span class="kwd">var</span><span class="pln"> webView </span><span class="pun">:</span><span class="pln"> </span><span class="typ">WKWebView</span><span class="pun">!</span><span class="pln">
</span><span class="kwd">let</span><span class="pln"> activityIndicator </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UIActivityIndicatorView</span><span class="pun">(</span><span class="pln">style</span><span class="pun">:</span><span class="pln"> </span><span class="pun">.</span><span class="pln">whiteLarge</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">override</span><span class="pln"> func viewDidLoad</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">super</span><span class="pun">.</span><span class="pln">viewDidLoad</span><span class="pun">()</span><span class="pln">
</span><span class="com">//加载视图后进行任何其他设置。</span><span class="pln">
activityIndicator</span><span class="pun">.</span><span class="pln">startAnimating</span><span class="pun">()</span><span class="pln">
webView </span><span class="pun">=</span><span class="pln"> </span><span class="typ">WKWebView</span><span class="pun">()</span><span class="pln">
webView</span><span class="pun">.</span><span class="pln">navigationDelegate </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">self</span><span class="pln">
</span><span class="kwd">self</span><span class="pun">.</span><span class="pln">view </span><span class="pun">=</span><span class="pln"> webView
</span><span class="kwd">let</span><span class="pln"> loadURL </span><span class="pun">=</span><span class="pln"> </span><span class="str">"https://www.learnfk.com"</span><span class="pln">
</span><span class="kwd">let</span><span class="pln"> url </span><span class="pun">=</span><span class="pln"> URL</span><span class="pun">(</span><span class="kwd">string</span><span class="pun">:</span><span class="pln"> loadURL</span><span class="pun">)!</span><span class="pln">
webView</span><span class="pun">.</span><span class="pln">load</span><span class="pun">(</span><span class="typ">URLRequest</span><span class="pun">(</span><span class="pln">url</span><span class="pun">:</span><span class="pln"> url</span><span class="pun">))</span><span class="pln">
activityIndicator</span><span class="pun">.</span><span class="pln">stopAnimating</span><span class="pun">()</span><span class="pln">
webView</span><span class="pun">.</span><span class="pln">allowsBackForwardNavigationGestures </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
}
extension ViewController : WKNavigationDelegate {
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
activityIndicator.startAnimating()
}
func webView</span><span class="pun">(</span><span class="pln">_ webView</span><span class="pun">:</span><span class="pln"> </span><span class="typ">WKWebView</span><span class="pun">,</span><span class="pln"> didFinish navigation</span><span class="pun">:</span><span class="pln"> </span><span class="typ">WKNavigation</span><span class="pun">!)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
activityIndicator</span><span class="pun">.</span><span class="pln">stopAnimating</span><span class="pun">()</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
}