RxWKWebView
安装
RxWKWebView可以通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile文件中。
pod 'RxWKWebView'
需求
- Xcode 11.x
- Swift 5.x
示例用法
要运行示例项目,请克隆仓库,并从示例目录运行pod install
。
import UIKit
import WebKit
import RxSwift
import RxWKWebView
class ViewController: UIViewController {
private lazy var webView: WKWebView = {
let configuration = WKWebViewConfiguration()
let webView = WKWebView(frame: view.bounds, configuration: configuration)
webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
return webView
}()
private lazy var disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(webView)
webView.rx.navigationAction
.subscribe(onNext: { action in
switch action {
case let .navigationAction(webView, action, handler):
print("navigationAction. action = \(action)")
print("navigationAction. target = \(webView.url?.absoluteString ?? "<nil>")")
handler(WKNavigationActionPolicy.allow)
case let .didStart(webView, navigation):
print("start web page. action = \(navigation)")
print("start web page. target = \(webView.url?.absoluteString ?? "<nil>")")
case let .didFinish(webView, navigation):
print("end web page. action = \(navigation)")
print("end web page. target = \(webView.url?.absoluteString ?? "<nil>")")
}
})
.disposed(by: disposeBag)
let url = URL(string: "https://www.apple.com")!
let request = URLRequest(url: url)
webView.load(request)
}
}
作者
outofcoding, [邮箱地址保护]
许可协议
RxWKWebView 在 MIT 许可协议下可用。更多信息请参阅 LICENSE 文件。