Otafuku 1.1.0

Otafuku 1.1.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最新发布2016年9月
SPM支持SPM

Kazunobu Tasaka维护。



Otafuku 1.1.0

Otafuku提供了一些实用类,用于使用WKWebView。

功能

  • WebViewUIController来处理WKUIDelegate方法,类似于常规浏览器通过呈现一个警告来实现。
  • WebViewPropertyObserver通过一个注册的闭包和Swift枚举来通知WKWebView属性值变化。使用这个类,无需KVO代码即可知道WKWebView属性值的变化。

用法

WebViewUIController

WebViewUIController处理WKUIDelegate。
如下所示,只需在UIViewController的viewDidLoad中声明一个WebViewUIController的属性并将其设置为WKWebView.UIDelegate。

class ViewController: UIViewController {
    let uiDelegate = WebViewUIController()

    override func viewDidLoad() {
        super.viewDidLoad()
        webView.UIDelegate = uiDelegate
    }
}

WebViewPropertyObserver

WebViewPropertyObserver通知WKWebView属性值变化。
如下所示,声明一个WebViewPropertyObserver的属性,以在整个ViewController生命周期中保留其对象。
初始化时,传入WKWebView对象和用于处理WKWebView属性变化的闭包。

class ViewController: UIViewController {
    @IBOutlet var progressView: UIProgressView!
    @IBOutlet var backItem: UIBarButtonItem!
    @IBOutlet var forwardItem: UIBarButtonItem!

    var propertyObserver: WebViewPropertyObserver?

    override func viewDidLoad() {
        super.viewDidLoad()
        propertyObserver = WebViewPropertyObserver(webView: webView, handler:handleWebViewPropertyChange)
    }

    func handleWebViewPropertyChange(property: WebViewPropertyObserver.WebViewProperty) {
        switch property {
        case .Title(let title):
            navigationItem.title = title
        case .URL(let URL):
            // do something with URL
            break
        case .CanGoBack(let canGoBack):
            backItem.enabled = canGoBack
        case .CanGoForward(let canGoForward):
            forwardItem.enabled = canGoForward
        case .EstimatedProgress(let progress):
            progressView.progress = progress
        case .Loading(let loading):
            // do something with loading
            break
        case .HasOnlySecureContent(let secureContent):
            // do something with secureContent
            break
        }
    }
}

要求

  • iOS 8.0+
  • Swift 3.0
  • Xcode 8.0

安装

  • 使用CocoaPods安装
platform :ios, '8.0'
use_frameworks!

pod 'Otafuku'

许可证

Otafuku在MIT许可证下发布。有关详情,请参阅LICENSE。