@@ -51,100 +51,6 @@ <h1>Demo</h1>
5151 } )
5252 }
5353 } )
54-
55- ; ( function ( ) {
56- if ( window . WKWebViewJavascriptBridge ) {
57- return ;
58- }
59-
60- if ( ! window . onerror ) {
61- window . onerror = function ( msg , url , line ) {
62- console . log ( "WKWebViewJavascriptBridge: ERROR:" + msg + "@" + url + ":" + line ) ;
63- }
64- }
65- window . WKWebViewJavascriptBridge = {
66- registerHandler : registerHandler ,
67- callHandler : callHandler ,
68- _fetchQueue : _fetchQueue ,
69- _handleMessageFromiOS : _handleMessageFromiOS
70- } ;
71-
72- var sendMessageQueue = [ ] ;
73- var messageHandlers = { } ;
74-
75- var responseCallbacks = { } ;
76- var uniqueId = 1 ;
77-
78- function registerHandler ( handlerName , handler ) {
79- messageHandlers [ handlerName ] = handler ;
80- }
81-
82- function callHandler ( handlerName , data , responseCallback ) {
83- if ( arguments . length == 2 && typeof data == 'function' ) {
84- responseCallback = data ;
85- data = null ;
86- }
87- _doSend ( { handlerName :handlerName , data :data } , responseCallback ) ;
88- }
89-
90- function _doSend ( message , responseCallback ) {
91- if ( responseCallback ) {
92- var callbackID = 'cb_' + ( uniqueId ++ ) + '_' + new Date ( ) . getTime ( ) ;
93- responseCallbacks [ callbackID ] = responseCallback ;
94- message [ 'callbackID' ] = callbackID ;
95- }
96- sendMessageQueue . push ( message ) ;
97- window . webkit . messageHandlers . iOS_Native_FlushMessageQueue . postMessage ( null )
98- }
99-
100- function _fetchQueue ( ) {
101- var messageQueueString = JSON . stringify ( sendMessageQueue ) ;
102- sendMessageQueue = [ ] ;
103- return messageQueueString ;
104- }
105-
106- function _dispatchMessageFromiOS ( messageJSON ) {
107- var message = JSON . parse ( messageJSON ) ;
108- var messageHandler ;
109- var responseCallback ;
110-
111- if ( message . responseID ) {
112- responseCallback = responseCallbacks [ message . responseID ] ;
113- if ( ! responseCallback ) {
114- return ;
115- }
116- responseCallback ( message . responseData ) ;
117- delete responseCallbacks [ message . responseID ] ;
118- } else {
119- if ( message . callbackID ) {
120- var callbackResponseId = message . callbackID ;
121- responseCallback = function ( responseData ) {
122- _doSend ( { handlerName :message . handlerName , responseID :callbackResponseId , responseData :responseData } ) ;
123- } ;
124- }
125-
126- var handler = messageHandlers [ message . handlerName ] ;
127- if ( ! handler ) {
128- console . log ( "WKWebViewJavascriptBridge: WARNING: no handler for message from iOS:" , message ) ;
129- } else {
130- handler ( message . data , responseCallback ) ;
131- }
132- }
133- }
134-
135- function _handleMessageFromiOS ( messageJSON ) {
136- _dispatchMessageFromiOS ( messageJSON ) ;
137- }
138-
139- setTimeout ( _callWVJBCallbacks , 0 ) ;
140- function _callWVJBCallbacks ( ) {
141- var callbacks = window . WKWVJBCallbacks ;
142- delete window . WKWVJBCallbacks ;
143- for ( var i = 0 ; i < callbacks . length ; i ++ ) {
144- callbacks [ i ] ( WKWebViewJavascriptBridge ) ;
145- }
146- }
147- } ) ( ) ;
14854 </ script >
14955 < div id ='buttons '> </ div > < div id ='log '> </ div >
15056</ body > </ html >
0 commit comments