美文网首页我爱编程
OC与JS交互之WebViewJavascriptBridge

OC与JS交互之WebViewJavascriptBridge

作者: 曾经那样美 | 来源:发表于2017-08-23 18:59 被阅读0次

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

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

    修改后的地址:demo地址 

    示例:

    修改后如上图

    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

        本文链接:https://www.haomeiwen.com/subject/stjjdxtx.html