Skip to content

Commit ed86a62

Browse files
authored
Merge pull request #383 from zaroxh/main
Fix: Prevent duplicate JS bridge injection on desktop
2 parents b1a6497 + 0781a75 commit ed86a62

File tree

1 file changed

+23
-21
lines changed
  • webview/src/commonMain/kotlin/com/multiplatform/webview/web

1 file changed

+23
-21
lines changed

webview/src/commonMain/kotlin/com/multiplatform/webview/web/IWebView.kt

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -179,28 +179,30 @@ interface IWebView {
179179
}
180180
val initJs =
181181
"""
182-
window.$jsBridgeName = {
183-
callbacks: {},
184-
callbackId: 0,
185-
callNative: function (methodName, params, callback) {
186-
var message = {
187-
methodName: methodName,
188-
params: params,
189-
callbackId: callback ? window.$jsBridgeName.callbackId++ : -1
190-
};
191-
if (callback) {
192-
window.$jsBridgeName.callbacks[message.callbackId] = callback;
182+
if (typeof window.$jsBridgeName === 'undefined') {
183+
window.$jsBridgeName = {
184+
callbacks: {},
185+
callbackId: 0,
186+
callNative: function (methodName, params, callback) {
187+
var message = {
188+
methodName: methodName,
189+
params: params,
190+
callbackId: callback ? window.$jsBridgeName.callbackId++ : -1
191+
};
192+
if (callback) {
193+
window.$jsBridgeName.callbacks[message.callbackId] = callback;
194+
}
195+
window.$jsBridgeName.postMessage(JSON.stringify(message));
196+
},
197+
onCallback: function (callbackId, data) {
198+
var callback = window.$jsBridgeName.callbacks[callbackId];
199+
if (callback) {
200+
callback(data);
201+
delete window.$jsBridgeName.callbacks[callbackId];
202+
}
193203
}
194-
window.$jsBridgeName.postMessage(JSON.stringify(message));
195-
},
196-
onCallback: function (callbackId, data) {
197-
var callback = window.$jsBridgeName.callbacks[callbackId];
198-
if (callback) {
199-
callback(data);
200-
delete window.$jsBridgeName.callbacks[callbackId];
201-
}
202-
}
203-
};
204+
};
205+
}
204206
""".trimIndent()
205207
evaluateJavaScript(initJs)
206208
}

0 commit comments

Comments
 (0)