• 原生 vs html5


    微信带动了html5 技术的广泛应用 有点夸张,但它确实火了一把。

    现在就来学习学习 ios 是如何与h5进行交互的;

    PART-ONE

    一、原理

    1.h5 与 ios 进行交互,首先得建立 webviewBridge ,沟通的桥梁;

    2.其次是双方的响应。

    a.先在h5端注册一个响应的名称。

    b.oc就可以通过这个名称对h5进行呼叫。

    c.oc发送消息给h5 分两种情况,一种是要求h5返回参数,而另一种是不要求h5返回数据

    PART-TWO

    二、使用

    比较好用的第三库 WebViewJavascriptBridge 

    第一步:注册一个UIWebView

    UIWebView* webView = [[UIWebView alloc] initWithFrame:self.view.bounds];

        [self.view addSubview:webView];

    第二步:注册“桥梁”
    - (void)viewDidload {
    if(self.bridge == nil) { return ;} [WebViewJavascriptBridge enableLogging]; self.bridge = [WebViewJavascriptBridge bridgeForWebVeiw:webViewDelegate:self handler:^(id data, WVJBResponseCallback responseCallback) {
      NSLog(@"Objc received message from JS :%@",data);
    }
      
    responseCallback(@"Response for message from Objc"); }];
    }

    第三步:JS调用OC方法

    [_bridge registerHandler:@"testObjcCallback" handler:^(id data, WVJBResponseCallback responseCallback) {
            NSLog(@"testObjcCallback called: %@", data);
            responseCallback(@"Response from testObjcCallback");
        }];

    第四步:OC调用JS方法

    [_bridge callHandler:@"testObjcCallback" data:data responseCallback:^(id  response) {  

      response(@"Response from testObjcCallback");

    }

    第五:

    无参返回

    [_bridge send: @"this is a message from OC" ];

    有参返回

    [_bridge send:@"this a message from OC ,please answer the message when u see it" responseCallback(^id response) {

      NSLog(@"the answer from JS");

    }];

  • 相关阅读:
    市值
    01-HTML基础与进阶-day3-录像237
    01-HTML基础与进阶-day3-录像236
    01-HTML基础与进阶-day3-录像235
    01-HTML基础与进阶-day2-HTML第二讲
    01-HTML基础与进阶-day2-HTML第一讲
    01H5-fe-html5-006插入视频
    MySQL 备份和恢复数据
    MySQL 索引
    MySQL 视图
  • 原文地址:https://www.cnblogs.com/tony0571/p/5449473.html
Copyright © 2020-2023  润新知