现在的项目里面有WebView与js的交互,因为第一次用这个,走了弯路,特此记录
js调用原生
// JS主动调用OjbC的方法,首先原生需要注册方法
// 这是JS会调用getUserIdFromObjC方法,这是OC注册给JS调用的
// JS需要回调,当然JS也可以传参数过来。data就是JS所传的参数,不一定需要传
// OC端通过responseCallback回调JS端,JS就可以得到所需要的数据
[self.bridge registerHandler:@"getUserIdFromObjC" handler:^(id data, WVJBResponseCallback responseCallback) {
NSLog(@"js call getUserIdFromObjC, data from js is %@", data);
if (responseCallback) {
// 反馈给JS
responseCallback(@{@"userId": @"123456"});
}
}];
// 这里是js里面的方法,调用原生
[self.bridge callHandler:@"getUserIdFromObjC" data:@{@"name": @"标哥"} responseCallback:^(id responseData) {
NSLog(@"from js: %@", responseData);
}];
原生调用js, 类似js调用原生,只是方法互换了
首先js注册方法
伪代码
[bridge registerHandler: ""]
其次原生调用js
[bridge callHandle]
反正就记住registe是注册方法,callHandle是调用
网友评论