WebKitPlus 0.5.0

WebKitPlus 0.5.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新版本2022年2月
SPM支持 SPM

yashiganiSyo IkedaYutaro Muta 维护。



  • yashigani

WebKitPlus

Carthage compatible

WKWebView 的支持库。

要求

  • iOS 12.0 及以上

使用方法

WKUIDelegatePlus

WKUIDelegatePlusWKUIDelegate 提供了标准实现(从 JavaScript 发送警报)。

override public func viewDidLoad() {
    super.viewDidLoad()
    UIDelegate = WKUIDelegatePlus(self)
    webView.UIDelegate = UIDelegate
}

WebViewObserver

WKWebView具备键值观察的属性,这真是太棒了,但键值观察真的很丑陋。《WebViewObserver》通过闭包将其实现为可观察。

lazy var observer: WebViewObserver = WebViewObserver(self.webView)
override public func viewDidLoad() {
    super.viewDidLoad()
    observer.onTitleChanged = { [weak self] in self?.title = $0 }
    observer.onProgressChanged = { [weak self] in self?.progressbar.progress = $0 }
}

导航中的身份验证

alertForAuthentication函数会创建一个UIAlertController来输入身份验证信息。

/// in `WKWebNavigationDelegate` object
func webView(webView: WKWebView, didReceiveAuthenticationChallenge challenge: NSURLAuthenticationChallenge, completionHandler: (NSURLSessionAuthChallengeDisposition, NSURLCredential?) -> Void) {
    guard let alert = alertForAuthentication(challenge, completionHandler) else {
        // Should call `completionHandler` if `alertForAuthentication` return `.None`.
        completionHandler(.PerformDefaultHandling, nil)
        return
    }
    presentViewController(alert, animated: true, completion: nil)
}

ZenWebViewController

ZenWebViewController是一个包含WKWebView的简单视图控制器。您可以使用它实现简单的网页浏览器。

作者

@yashigani

许可证

WebKitPlus在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。