当前位置: 代码迷 >> 综合 >> iOS WKWebView
  详细解决方案

iOS WKWebView

热度:42   发布时间:2024-02-23 08:22:52.0

iOS WKWebView

参考官方文档的学习使用


文章目录

  • iOS WKWebView
  • 前言
  • 一、WKWebView是什么?
  • 二、详细介绍
    • 1.使用
    • 2.属性、方法详解
  • 总结


前言

提示:从iOS8.0和OS X 10.10开始,需使用WKWebView添加web内容,不要使用UIWebView或者WebView。


提示:以下是本篇文章正文内容,下面案例可供参考

一、WKWebView是什么?

显示交互式Web内容的对象,就像App内的浏览器。
Note: 您可以在WKWebView中使用httpBody内容发出POST请求

二、详细介绍

1.使用

代码如下(示例):

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 = selfview = webView}override func viewDidLoad() {
    super.viewDidLoad()let myURL = URL(string:"https://www.apple.com")let myRequest = URLRequest(url: myURL!)webView.load(myRequest)}}

默认情况下,Web视图会自动将显示在Web内容中的电话号码转换为“电话”链接。 轻按“电话”链接后,“电话”应用将启动并拨打该号码。若要关闭此默认行为,请使用不包含phoneNumber标志的WKDataDetectorTypes位字段设置dataDetectorTypes属性。

2.属性、方法详解

/* @abstract Checks whether or not WKWebViews handle the given URL scheme by default. @param scheme The URL scheme to check. */
// 返回WebKit本机是否支持使用特定URL方案加载资源。
@available(iOS 11.0, *)
open class func handlesURLScheme(_ urlScheme: String) -> Bool// 用于初始化Web视图的配置副本。
var configuration: WKWebViewConfiguration// 返回使用指定frame和配置初始化的Web视图。
init(frame: CGRect, configuration: WKWebViewConfiguration)// 遵守了NSCoding 用xib构建控件时
public init?(coder: NSCoder)// ******************* View Information *****************// 与webView关联的滚动视图
var scrollView: UIScrollView// 页面title 支持KVO
var title: String?// 当前URL 支持KVO
var url: URL?// 自定义用户代理字符串。如果未设置自定义用户代理字符串,则设置为nil。
var customUserAgent: String?// 当前提交的导航的SecTrustRef对象。 支持KVO
// 用于评估信任的对象
var serverTrust: SecTrust?// Deprecated 当前提交的导航的证书链的对象数组。
var certificateChain: [Any]// ******************* Delegates *****************// WebView的导航代理 
// [详细介绍](https://blog.csdn.net/meiyulong518/article/details/108733416)
var navigationDelegate: WKNavigationDelegate?// 用户界面代理
var uiDelegate: WKUIDelegate?// ******************* Loading Content *****************// 估计当前导航中已加载的部分。 范围为0.0到1.0。
// 导航加载完成后estimatedProgress值保持为1.0直到新的导航开始重新设置为0.0 。
// 支持KVO
var estimatedProgress: Double
//ex. estimatedProgress 监听 
webView.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil)override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    if keyPath == "estimatedProgress" {
    print(webView.estimatedProgress)}}// 是否已通过安全加密的连接加载页面上的所有资源 支持KVO
var hasOnlySecureContent: Bool// 设置网页内容和基本URL
func loadHTMLString(String, baseURL: URL?) -> WKNavigation?// WKNavigation 跟踪网页的加载进度,Web视图的加载方法返回了WKNavigation,并且传递给导航委托方法,以唯一地标识网页
// 从头到尾加载。
@available(iOS 8.0, *)
open class WKNavigation : NSObject {
    /** The content mode used when loading this webpage.@discussion The value is either WKContentModeMobile or WKContentModeDesktop.*/@available(iOS 13.0, *)open var effectiveContentMode: WKWebpagePreferences.ContentMode {
     get }
}// 当前是否正在加载内容
var isLoading: Bool// 重新加载当前页面 返回代表重新加载的网页的新导航。
func reload() -> WKNavigation?
func reload(Any?)//发送此消息的对象// 重新加载当前页面,并在可能的情况下使用缓存验证条件执行端到端重新验证。
func reloadFromOrigin() -> WKNavigation?
func reloadFromOrigin(Any?)//发送此消息的对象// 停止加载当前页面上的所有资源。
func stopLoading()
func stopLoading(Any?)//发送此消息的对象// 设置网页内容和基本URL, 数据,数据的MIME类型,数据的字符编码名称,baseURL用于解析文档中相对URL的URL
func load(Data, mimeType: String, characterEncodingName: String, baseURL: URL) -> WKNavigation?// 加载本地文件。 导航到的文件URL,允许读取访问的URL。
// 如果ReadAccessURL是一个单独的文件则可能只会加载这个文件,
// 如果ReadAccessURL是一个文件夹则会加载这个文件下的文件,
func loadFileURL(URL, allowingReadAccessTo: URL) -> WKNavigation?

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。