File tree Expand file tree Collapse file tree 2 files changed +28
-2
lines changed
Tests/WebViewJavascriptBridgeTests Expand file tree Collapse file tree 2 files changed +28
-2
lines changed Original file line number Diff line number Diff line change @@ -121,6 +121,23 @@ - (void)classSpecificTestObjectEncoding:(Class)cls webView:(id)webView {
121
121
loadEchoSample (webView);
122
122
}
123
123
124
+ - (void )testJavascriptReceiveResponse {
125
+ [self classSpecificTestJavascriptReceiveResponse: [WebViewJavascriptBridge class ] webView: _uiWebView];
126
+ [self classSpecificTestJavascriptReceiveResponse: [WKWebViewJavascriptBridge class ] webView: _wkWebView];
127
+ [self waitForExpectationsWithTimeout: 3 handler: NULL ];
128
+ }
129
+ - (void )classSpecificTestJavascriptReceiveResponse : (Class )cls webView : (id )webView {
130
+ WebViewJavascriptBridge *bridge = [self bridgeForCls: cls webView: webView];
131
+ loadEchoSample (webView);
132
+ XCTestExpectation *callbackInvocked = [self expectationWithDescription: @" Callback invoked" ];
133
+ [bridge registerHandler: @" objcEchoToJs" handler: ^(id data, WVJBResponseCallback responseCallback) {
134
+ responseCallback (data);
135
+ }];
136
+ [bridge callHandler: @" jsRcvResponseTest" data: nil responseCallback: ^(id responseData) {
137
+ XCTAssertEqualObjects (responseData, @" Response from JS" );
138
+ [callbackInvocked fulfill ];
139
+ }];
140
+ }
124
141
125
142
- (WebViewJavascriptBridge*)bridgeForCls : (Class )cls webView : (id )webView {
126
143
if (cls == [WebViewJavascriptBridge class ]) {
Original file line number Diff line number Diff line change 15
15
}
16
16
17
17
setupWebViewJavascriptBridge ( function ( bridge ) {
18
- WebViewJavascriptBridge . callHandler ( 'Greet' , 'Hello world' ) ;
19
- WebViewJavascriptBridge . registerHandler ( 'echoHandler' , function ( data , responseCallback ) {
18
+ bridge . callHandler ( 'Greet' , 'Hello world' ) ;
19
+ bridge . registerHandler ( 'echoHandler' , function ( data , responseCallback ) {
20
20
responseCallback ( data )
21
21
} )
22
+ bridge . registerHandler ( 'jsRcvResponseTest' , function ( data , responseCallback ) {
23
+ bridge . callHandler ( 'objcEchoToJs' , { foo :'bar' } , function ( response ) {
24
+ if ( response && response . foo == 'bar' ) {
25
+ responseCallback ( "Response from JS" )
26
+ } else {
27
+ responseCallback ( "Failed" )
28
+ }
29
+ } )
30
+ } )
22
31
} )
23
32
</ script >
24
33
</ body > </ html >
You can’t perform that action at this time.
0 commit comments