The WKWebViewJavascriptBridge is a powerful library that allows you to easily communicate between JavaScript running in a WKWebView and native Objective-C or Swift code.


  • Bi-directional communication between JavaScript and native code
  • Easy setup with WKWebView
  • Simplified messaging with a consistent API
  • Support for sending messages with payloads
  • Highly customizable with a flexible event system
  • Handles native promises and async/await patterns


Follow the steps below to install the WKWebViewJavascriptBridge library:

  1. Open your Xcode project
  2. Go to File ➡️ Swift Packages ➡️ Add Package Dependency
  3. Enter the repository URL https://github.com/Lision/WKWebViewJavascriptBridge.git
  4. Choose the desired version or branch to install
  5. Click Next and follow the installation prompt

Getting Started

Once you have installed the library, follow these steps to set up and use WKWebViewJavascriptBridge:

Initialize the Bridge

In your native code, initialize the bridge by creating an instance of WKWebViewJavascriptBridge and setting the bridge’s message handler.

let bridge = WKWebViewJavascriptBridge(webview: webView) { message, response in
// Handle incoming messages from JavaScript

Register JavaScript Handlers

Next, register any JavaScript handlers you wish to call from native code. These handlers will be invoked when JavaScript sends a message with the provided handler name.

bridge.register(handlerName: "myHandler") { data, response in
// Handle the message from JavaScript and send a response if needed

Send Messages from JavaScript to Native

To send messages from JavaScript to native code, use the bridge.send method. Provide the message payload and an optional response handler that will be called with the native response.

bridge.send(message: "Hello from JavaScript") { response in
// Handle the response from native code

Send Messages from Native to JavaScript

To send messages from native code to JavaScript, use the bridge.call method. Provide the name of the JavaScript handler registered earlier and an optional payload or response handler.

bridge.call(handlerName: "myHandler", data: "Hello from native code") { response in
// Handle the response from JavaScript

Advanced Usage

WKWebViewJavascriptBridge provides a range of additional features to enhance your communication between JavaScript and native code:

  • Event System: Use events to broadcast messages throughout your app
  • Promises and Async/Await: Use native promises and async/await patterns for asynchronous communication
  • Error Handling: Handle errors and timeouts during message communication
  • Customization: Customize the bridge behavior by configuring options and message handling


If you run into any issues or errors while using WKWebViewJavascriptBridge, refer to the following troubleshooting tips:

  • Double-check that you have correctly followed the installation and setup steps
  • Ensure that your JavaScript and native code are properly communicating with the bridge
  • Check for any relevant error messages or console logs
  • Refer to the official documentation or community forums for assistance


With the WKWebViewJavascriptBridge library, you can easily establish seamless communication between JavaScript and native code in your iOS app. Utilize the provided features to build powerful and interactive applications.