zoukankan      html  css  js  c++  java
  • 原生 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");

    }];

  • 相关阅读:
    【代码沉淀】
    【整理总结】目录
    Windows service installer with InstallShield LE
    (The application/json Media Type for JavaScript Object Notation (JSON))RFC4627-JSON格式定义
    Microsoft .NET Framework 4 安装 1603错误的解决
    SQL SERVER 无法正常连接的那些事
    【整理总结】我的装机软件以及说明
    Wcf服务测试自带工具
    Postgresql 远程连接配置
    Caliburn.Micro
  • 原文地址:https://www.cnblogs.com/tony0571/p/5449473.html
Copyright © 2011-2022 走看看