OC与JS交互之WebViewJavascriptBridge

参考 [iOS] 使用WebViewJavascriptBridge实现OC与JS交互

详细的就不说了看上面的文章就可以,只是做了简单修改,实现跟上面一样处理。

修改后的地址:demo地址 

示例:


OC与JS交互之WebViewJavascriptBridge_第1张图片
修改后如上图

JS调用OC 

JS代码(这里是找到id为buttons的div 然后创建一个按钮,点击按钮之后调用OC代码 )

var callbackButton = document.getElementById('buttons').appendChild(document.createElement('button'))

callbackButton.innerHTML = '登陆'

callbackButton.onclick = function(e) {

e.preventDefault()

log('点击了JS的按钮')

bridge.callHandler('loginFunc', {'typeId': '100001'}, function(response) {

callbackButton.innerHTML ='登陆成功'

log('JS got response', response)

})

}

OC中实现代码

// 注册个登陆的事件

[_bridge registerHandler:@"loginFunc" handler:^(id data, WVJBResponseCallback responseCallback) {

NSLog(@"js登陆传递过来的数据:%@",data);

// 调用登陆方法

NSString *success=  [self logIn:data[@"typeId"]];

/// 登陆成功之后传递给JS的参数

responseCallback(success);

}];

OC调用JS

OC创建一个注册按钮,点击之后调用JS

// OC中一个注册按钮

UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(150, 70, 80, 30)];

btn.backgroundColor = [UIColor lightGrayColor];

[btn setTitle:@"注册" forState:UIControlStateNormal];

[btn addTarget:self action:@selector(btnClickReg:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:btn];

// 点击注册按钮

-(void)btnClickReg:(UIButton *)sender

{

// registerFunc 跟JS协商的名字  data传递给JS的参数  responseCallback JS收到之后回调返回的数据

[_bridge callHandler:@"registerFunc" data:@{ @"mobile":@"10086"} responseCallback:^(id responseData) {

NSLog(@"%@",responseData[@"success"]);

}];

JS中的逻辑

bridge.registerHandler('registerFunc', function(data, responseCallback) {

log('注册收到OC的数据:', data)

var responseData = { 'success':'你已经注册成了' }

log('JS打印数据', responseData)

responseCallback(responseData)

})

好了,至此结束,不懂的看上面的demo就可以了。

你可能感兴趣的:(OC与JS交互之WebViewJavascriptBridge)