无涯教程-Swift - WebView

163 阅读4分钟

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">

}

参考链接

www.learnfk.com/ios/ios-web…