Skip to content

Latest commit

History

125 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

ObservableWebView

WKWebView implementation using Swift's Observation framework.

letmanager:ObservableWebViewManager

Observable States

ObservableWebView(manager: manager).onChange(of: manager.urlString){...}
ObservableWebView(manager: manager).onChange(of: manager.progress){updateLoadingBar(withProgress: manager.progress)}

Load States

ObservableWebView(manager: manager).onChange(of: manager.loadState){switch state {case.idle:print("WebView is idle.")case.isLoading:print("WebView is loading.")case.isFinished:print("WebView has finished loading.")case.error(let error):print("WebView encountered an error: \(error.localizedDescription)")}}

JavaScript-friendly

Script Message Handlers

ObservableWebView(manager: manager).scriptMessageHandler("messageFromJS", manager: manager){ message inprint("Message: \(message.body)")}

Execution

manager.js("document.title")

With completion:

manager.js("document.title"){ result, error iniflet error = error {print("JavaScript execution failed: \(error)")}elseiflet result = result {print("JavaScript execution result: \(result)")}}

Screenshot 2024-04-06 at 12 24 31 PM

Tabs Gallery

Toolbar Customization

About

WKWebView implementation using Swift's new Observation framework

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages