iOS交互之Object-C与javaScript

来源:互联网 发布:手机4g网络dns劫持 编辑:程序博客网 时间:2024/05/21 09:43

下面这篇博文说明的是如何利用webviewJavascriptBridge实现ObjC与javaScript的交互,那么什么是oc与js的交互? 下面简单说明一下,比如说你的ios应用中有个webview,webview加载了一个html文件,html文件上呢有个button,我们的需求是 点击html上的button来获取oc中的数据或者执行oc的方法,这就用到了我们的交互技术。废话不多说,我们来实现功能。​

1.下载webviewJavascriptBridge;

2.将其导入工程​;

3.导入头文件并声明变量属性​:

#import “WebViewJavascriptBridge.h"

@property(nonatomic,retain)WebViewJavascriptBridge*bridge;

4.初始化webview并加载一个html文件(html代码稍后贴上):

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

NSString *path=[[NSBundle mainBundle]pathForResource:@"index" ofType:@"html"]; 

  NSURL *str=[NSURL URLWithString:path]; 

  [webView loadRequest:[NSURLRequest requestWithURL:str]];

5.在oc中初始化webviewjavascriptbridge:

_bridge = [WebViewJavascriptBridge bridgeForWebView:webView webViewDelegate:self handler:^(id data, WVJBResponseCallback responseCallback) {

NSLog(@"ObjC 收到信息来自 JS: %@", data);    }];

6.在js中配置webviewjavascriptbridge(鉴于许多ios开发者不懂web前端,下面将html页面原码都贴出来,大家command+c,command+v就可以了):

WebViewJavascriptBridge Demo

   

7.在oc中注册一个方法testJavascriptHandler当点击html中的按钮时调用这个方法:[_bridge registerHandler:@"testObjcCallback" handler:^(id data, WVJBResponseCallback responseCallback) {

        NSLog(@"testObjcCallback called: %@", data);        responseCallback(@"Response from testObjcCallback");    }];

8.至此简单的js调oc方法就实现了,因为这篇博文仅单一功能做了介绍,如果想全面学习的话可以参考下面链接:http://honglu.me/2014/09/27/WebViewJavascriptBridge使用/


0 0