Popularity
1.5
Declining
Activity
0.0
Stable
52
1
6

Code Quality Rank: L5
Programming language: Swift
License: MIT License
Tags: UI     Web View    
Latest version: v1.1.0

Otafuku alternatives and similar libraries

Based on the "Web View" category.
Alternatively, view Otafuku alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Otafuku or a related project?

Add another 'Web View' Library

README

Otafuku

Language CocoaPods License Issues

Otafuku provides utility classes to use WKWebView.

Features

  • WebViewUIController to handle WKUIDelegate methods by presenting an alert as usual browsers do.
  • WebViewPropertyObserver to notify WKWebView property value change via a registered closure and Swift enum. With this class, no KVO code is needed to know WKWebView property value change.

Usage

WebViewUIController

WebViewUIController handles WKUIDelegate.
As shown below, simply declare a property of WebViewUIController and set it to WKWebView.UIDelegate in UIViewController.viewDidLoad.

class ViewController: UIViewController {
    let uiDelegate = WebViewUIController()

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

WebViewPropertyObserver

WebViewPropertyObserver notifies WKWebView property value change.
As shown below, declare a property of WebViewPropertyObserver to retain its object throughout the ViewController's life cycle.
To initialize, pass a WKWebView object and a closure handling WKWebView's property change.

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
        }
    }
}

Requirements

  • iOS 8.0+
  • Swift 3.0
  • Xcode 8.0

Installation

  • Install with CocoaPods
platform :ios, '8.0'
use_frameworks!

pod 'Otafuku'

License

Otafuku is released under the MIT license. See LICENSE for details.


*Note that all licence references and agreements mentioned in the Otafuku README section above are relevant to that project's source code only.