diff --git a/example/Sample2/RCTWebView+WebViewExBridge.m b/example/Sample2/RCTWebView+WebViewExBridge.m index b0abb06..d2bc479 100644 --- a/example/Sample2/RCTWebView+WebViewExBridge.m +++ b/example/Sample2/RCTWebView+WebViewExBridge.m @@ -58,12 +58,11 @@ static dispatch_queue_t serialQueue; NSString* message = [webView stringByEvaluatingJavaScriptFromString:@"WebViewBridge._fetch()"]; - NSArray* messageArray = [self __jsonParseArray: message]; - RCTResponseSenderBlock callbackHandler = (RCTResponseSenderBlock)[callbackMap objectForKey:messageArray[0]]; + NSArray* temp = [self __jsonParseArray: message]; + RCTResponseSenderBlock callbackHandler = (RCTResponseSenderBlock)[callbackMap objectForKey:temp[0]]; + NSArray* messageArray = [self removeObjectFromArray:temp withIndex:0]; - callbackHandler(@[message]); - - NSLog(@"%@", message); + callbackHandler(@[messageArray]); return YES; } @@ -127,4 +126,10 @@ static dispatch_queue_t serialQueue; encoding:NSUTF8StringEncoding]; } +-(NSArray *) removeObjectFromArray:(NSArray *) array withIndex:(NSInteger) index { + NSMutableArray *modifyableArray = [[NSMutableArray alloc] initWithArray:array]; + [modifyableArray removeObjectAtIndex:index]; + return [[NSArray alloc] initWithArray:modifyableArray]; +} + @end diff --git a/example/Sample2/WebViewBridge.js b/example/Sample2/WebViewBridge.js index 0da1cf3..ba347c7 100644 --- a/example/Sample2/WebViewBridge.js +++ b/example/Sample2/WebViewBridge.js @@ -19,7 +19,14 @@ class WebViewBridge extends Component { onMessage(cb) { var ref = this.refs[WEB_VIEW_BRIDGE_REF]; - WebViewManager.onMessage(ref.getWebWiewHandle(), cb); + WebViewManager.onMessage(ref.getWebWiewHandle(), (messages) => { + messages.forEach((message) => { + cb(message); + }); + + //re register the callback again + this.onMessage(cb); + }); } evalScript(value) { diff --git a/example/Sample2/index.ios.js b/example/Sample2/index.ios.js index d3a4621..14b8827 100644 --- a/example/Sample2/index.ios.js +++ b/example/Sample2/index.ios.js @@ -19,8 +19,8 @@ var Sample2 = React.createClass({ console.log('onNavigationStateChange is called'); }, componentDidMount: function () { - this.refs.ali.onMessage(function () { - console.log('hello world!'); + this.refs.ali.onMessage(function (value) { + console.log('####', value); }); }, render: function() {