@@ -9,108 +9,108 @@ _______STRINGIFY(
9
9
var sendMessageQueue = [];
10
10
var receiveMessageQueue = [];
11
11
var messageHandlers = {};
12
-
13
- var CUSTOM_PROTOCOL_SCHEME = ' wvjbscheme' ;
14
- var QUEUE_HAS_MESSAGE = ' __WVJB_QUEUE_MESSAGE__' ;
15
-
12
+
13
+ var CUSTOM_PROTOCOL_SCHEME = ' wvjbscheme' ;
14
+ var QUEUE_HAS_MESSAGE = ' __WVJB_QUEUE_MESSAGE__' ;
15
+
16
16
var responseCallbacks = {};
17
17
var uniqueId = 1 ;
18
-
19
- function _createQueueReadyIframe (doc) {
18
+
19
+ function _createQueueReadyIframe (doc) {
20
20
messagingIframe = doc.createElement (' iframe' );
21
- messagingIframe.style .display = ' none' ;
21
+ messagingIframe.style .display = ' none' ;
22
22
messagingIframe.src = CUSTOM_PROTOCOL_SCHEME + ' ://' + QUEUE_HAS_MESSAGE;
23
23
doc.documentElement .appendChild (messagingIframe);
24
- }
24
+ }
25
25
26
- function init (messageHandler) {
26
+ function init (messageHandler) {
27
27
if (WebViewJavascriptBridge._messageHandler ) { throw new Error (' WebViewJavascriptBridge.init called twice' ); }
28
28
WebViewJavascriptBridge._messageHandler = messageHandler;
29
29
var receivedMessages = receiveMessageQueue;
30
30
receiveMessageQueue = null;
31
- for (var i=0 ; i<receivedMessages.length ; i++) {
31
+ for (var i=0 ; i<receivedMessages.length ; i++) {
32
32
_dispatchMessageFromObjC (receivedMessages[i]);
33
- }
34
- }
33
+ }
34
+ }
35
35
36
- function send (data, responseCallback) {
36
+ function send (data, responseCallback) {
37
37
_doSend ({ data:data }, responseCallback);
38
- }
39
-
40
- function registerHandler (handlerName, handler) {
38
+ }
39
+
40
+ function registerHandler (handlerName, handler) {
41
41
messageHandlers[handlerName] = handler;
42
- }
43
-
44
- function callHandler (handlerName, data, responseCallback) {
42
+ }
43
+
44
+ function callHandler (handlerName, data, responseCallback) {
45
45
_doSend ({ handlerName:handlerName, data:data }, responseCallback);
46
- }
47
-
48
- function _doSend (message, responseCallback) {
49
- if (responseCallback) {
46
+ }
47
+
48
+ function _doSend (message, responseCallback) {
49
+ if (responseCallback) {
50
50
var callbackId = ' cb_' +(uniqueId++)+' _' +new Date ().getTime ();
51
51
responseCallbacks[callbackId] = responseCallback;
52
52
message[' callbackId' ] = callbackId;
53
- }
53
+ }
54
54
sendMessageQueue.push (message);
55
55
messagingIframe.src = CUSTOM_PROTOCOL_SCHEME + ' ://' + QUEUE_HAS_MESSAGE;
56
- }
56
+ }
57
57
58
- function _fetchQueue () {
58
+ function _fetchQueue () {
59
59
var messageQueueString = JSON.stringify (sendMessageQueue);
60
60
sendMessageQueue = [];
61
61
return messageQueueString;
62
- }
62
+ }
63
63
64
- function _dispatchMessageFromObjC (messageJSON) {
65
- setTimeout (function _timeoutDispatchMessageFromObjC () {
64
+ function _dispatchMessageFromObjC (messageJSON) {
65
+ setTimeout (function _timeoutDispatchMessageFromObjC () {
66
66
var message = JSON.parse (messageJSON);
67
67
var messageHandler;
68
68
var responseCallback;
69
69
70
- if (message.responseId ) {
70
+ if (message.responseId ) {
71
71
responseCallback = responseCallbacks[message.responseId ];
72
- if (!responseCallback) { return ; }
72
+ if (!responseCallback) { return ; }
73
73
responseCallback (message.responseData );
74
74
delete responseCallbacks[message.responseId ];
75
- } else {
76
- if (message.callbackId ) {
75
+ } else {
76
+ if (message.callbackId ) {
77
77
var callbackResponseId = message.callbackId ;
78
- responseCallback = function (responseData) {
78
+ responseCallback = function (responseData) {
79
79
_doSend ({ responseId:callbackResponseId, responseData:responseData });
80
- }
81
- }
82
-
80
+ }
81
+ }
82
+
83
83
var handler = WebViewJavascriptBridge._messageHandler ;
84
- if (message.handlerName ) {
84
+ if (message.handlerName ) {
85
85
handler = messageHandlers[message.handlerName ];
86
- }
87
-
88
- try {
86
+ }
87
+
88
+ try {
89
89
handler (message.data , responseCallback);
90
- } catch (exception ) {
91
- if (typeof console != ' undefined' ) {
90
+ } catch (exception ) {
91
+ if (typeof console != ' undefined' ) {
92
92
console.log (" WebViewJavascriptBridge: WARNING: javascript handler threw." , message, exception );
93
- }
94
- }
95
- }
96
- })
97
- }
98
-
99
- function _handleMessageFromObjC (messageJSON) {
100
- if (receiveMessageQueue) {
93
+ }
94
+ }
95
+ }
96
+ })
97
+ }
98
+
99
+ function _handleMessageFromObjC (messageJSON) {
100
+ if (receiveMessageQueue) {
101
101
receiveMessageQueue.push (messageJSON);
102
- } else {
102
+ } else {
103
103
_dispatchMessageFromObjC (messageJSON);
104
- }
105
- }
104
+ }
105
+ }
106
106
107
- window.WebViewJavascriptBridge = {
108
- init: init,
109
- send: send,
110
- registerHandler: registerHandler,
111
- callHandler: callHandler,
112
- _fetchQueue: _fetchQueue,
113
- _handleMessageFromObjC: _handleMessageFromObjC
107
+ window.WebViewJavascriptBridge = {
108
+ init: init,
109
+ send: send,
110
+ registerHandler: registerHandler,
111
+ callHandler: callHandler,
112
+ _fetchQueue: _fetchQueue,
113
+ _handleMessageFromObjC: _handleMessageFromObjC
114
114
};
115
115
116
116
var doc = document;
0 commit comments