diff --git a/strada/src/main/assets/js/strada.js b/strada/src/main/assets/js/strada.js index 6ec10cb..ec7ae12 100644 --- a/strada/src/main/assets/js/strada.js +++ b/strada/src/main/assets/js/strada.js @@ -32,18 +32,18 @@ registerAdapter() { this.adapterIsRegistered = true - if (window.webBridge) { - window.webBridge.setAdapter(this) + if (this.isStradaAvailable) { + this.webBridge.setAdapter(this) } else { - document.addEventListener("web-bridge:ready", () => window.webBridge.setAdapter(this)) + document.addEventListener("web-bridge:ready", () => this.webBridge.setAdapter(this)) } } notifyBridgeOfSupportedComponentsUpdate() { this.supportedComponentsUpdated() - if (window.webBridge) { - window.webBridge.adapterDidUpdateSupportedComponents() + if (this.isStradaAvailable) { + this.webBridge.adapterDidUpdateSupportedComponents() } } @@ -53,8 +53,8 @@ // Reply to web with message replyWith(message) { - if (window.webBridge) { - window.webBridge.receive(JSON.parse(message)) + if (this.isStradaAvailable) { + this.webBridge.receive(JSON.parse(message)) } } @@ -70,15 +70,25 @@ // Native handler ready() { - Strada.bridgeDidInitialize() + StradaNative.bridgeDidInitialize() } supportedComponentsUpdated() { - Strada.bridgeDidUpdateSupportedComponents() + StradaNative.bridgeDidUpdateSupportedComponents() } postMessage(message) { - Strada.bridgeDidReceiveMessage(message) + StradaNative.bridgeDidReceiveMessage(message) + } + + // Web global + + get isStradaAvailable() { + return window.Strada + } + + get webBridge() { + return window.Strada.web } } diff --git a/strada/src/main/kotlin/dev/hotwire/strada/Bridge.kt b/strada/src/main/kotlin/dev/hotwire/strada/Bridge.kt index e27d35b..9936029 100644 --- a/strada/src/main/kotlin/dev/hotwire/strada/Bridge.kt +++ b/strada/src/main/kotlin/dev/hotwire/strada/Bridge.kt @@ -8,7 +8,7 @@ import java.lang.ref.WeakReference // These need to match whatever is set in strada.js private const val bridgeGlobal = "window.nativeBridge" -private const val bridgeJavascriptInterface = "Strada" +private const val bridgeJavascriptInterface = "StradaNative" @Suppress("unused") class Bridge internal constructor(webView: WebView) {