Skip to content

Commit 4d4fc97

Browse files
committed
Update JS initialization snippet. Fix marcuswestin#56 (Thanks @refractalize!). Possibly fixes marcuswestin#52.
1 parent fb46cc0 commit 4d4fc97

File tree

3 files changed

+29
-8
lines changed

3 files changed

+29
-8
lines changed

Example Apps/ExampleApp-OSX/AppDelegate.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ - (void)_sendMessage {
6464
}
6565

6666
- (void)_callHandler {
67-
is data = @{ @"greetingFromObjC": @"Hi there, JS!" };
67+
id data = @{ @"greetingFromObjC": @"Hi there, JS!" };
6868
[_bridge callHandler:@"testJavascriptHandler" data:data responseCallback:^(id response) {
6969
NSLog(@"testJavascriptHandler responded: %@", response);
7070
}];

Example Apps/ExampleApp.html

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,18 @@ <h1>WebViewJavascriptBridge Demo</h1>
1212
window.onerror = function(err) {
1313
log('window.onerror: ' + err)
1414
}
15-
document.addEventListener('WebViewJavascriptBridgeReady', onBridgeReady, false)
16-
function onBridgeReady(event) {
17-
var bridge = event.bridge
15+
16+
function connectWebViewJavascriptBridge(callback) {
17+
if (window.WebViewJavascriptBridge) {
18+
callback(WebViewJavascriptBridge)
19+
} else {
20+
document.addEventListener('WebViewJavascriptBridgeReady', function() {
21+
callback(WebViewJavascriptBridge)
22+
}, false)
23+
}
24+
}
25+
26+
connectWebViewJavascriptBridge(function(bridge) {
1827
var uniqueId = 1
1928
function log(message, data) {
2029
var log = document.getElementById('log')
@@ -60,7 +69,7 @@ <h1>WebViewJavascriptBridge Demo</h1>
6069
log('JS got response', response)
6170
})
6271
}
63-
}
72+
})
6473
</script>
6574
<div id='buttons'></div> <div id='log'></div>
6675
</body></html>

README.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,20 @@ To use a WebViewJavascriptBridge in your own project:
5050

5151
4) Finally, set up the javascript side:
5252

53-
document.addEventListener('WebViewJavascriptBridgeReady', function onBridgeReady(event) {
54-
var bridge = event.bridge
53+
function connectWebViewJavascriptBridge(callback) {
54+
if (window.WebViewJavascriptBridge) {
55+
callback(WebViewJavascriptBridge)
56+
} else {
57+
document.addEventListener('WebViewJavascriptBridgeReady', function() {
58+
callback(WebViewJavascriptBridge)
59+
}, false)
60+
}
61+
}
62+
63+
connectWebViewJavascriptBridge(function(bridge) {
64+
65+
/* Init your app here */
66+
5567
bridge.init(function(message, responseCallback) {
5668
alert('Received message: ' + message)
5769
if (responseCallback) {
@@ -62,7 +74,7 @@ To use a WebViewJavascriptBridge in your own project:
6274
bridge.send('Please respond to this', function responseCallback(responseData) {
6375
console.log("Javascript got its response", responseData)
6476
})
65-
}, false)
77+
})
6678

6779
Contributors & Forks
6880
--------------------

0 commit comments

Comments
 (0)