RxWKWebView 0.1.0

RxWKWebView 0.1.0

outofcode 维护。



 
依赖项
RxSwift~> 5.0
RxCocoa~> 5.0
 

  • outofcoding

RxWKWebView

CI Status Version License Platform

安装

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 文件。