javaScript与Objective-C交互
2015-11-22 22:41
435 查看
准备:将webView创建,然后将其添加到view上再设置当前控制器为webview的代理。
1. objc调用js,只需要有webview就可以直接调用,也可以在下面代理方法中调用:
或在其他地方:
2. js调用objc 一般是指操作了界面,比如点击一个按钮来调用本地objc方法
js中调用方式为通过请求发送
可参考:
http://www.tanhao.me/pieces/1607.html/
# 每一次操作界面事件都会触发,包括最初始加载当前网页。每次触发需要根据其条件判断其触发的事件,在本地native页面调用。所以本地页面要在其判断出结果后调用相应的本地方法,可将所有方法封装成一个类,通过调用类方法实现所有。
1. objc调用js,只需要有webview就可以直接调用,也可以在下面代理方法中调用:
- (void)webViewDidFinishLoad:(UIWebView *)webView { // 不一定非要在这里面调用,只要是有webView便可以调js NSString *str = [webView stringByEvaluatingJavaScriptFromString:@"clickLink();"];// 脚本的函数名 // NSLog(@"%@",str); // 这个是调用html中的脚本,并将脚本执行后的返回值返回来。 }
或在其他地方:
NSString *str = [webView stringByEvaluatingJavaScriptFromString:@"clickLink();"];// 脚本的函数名
2. js调用objc 一般是指操作了界面,比如点击一个按钮来调用本地objc方法
js中调用方式为通过请求发送
showScanning:function() { window.location = "ios:Scanning()"; // 调用信息 发送的信息为ios:Scanning(),需要进行解析 },
可参考:
http://www.tanhao.me/pieces/1607.html/
# 每一次操作界面事件都会触发,包括最初始加载当前网页。每次触发需要根据其条件判断其触发的事件,在本地native页面调用。所以本地页面要在其判断出结果后调用相应的本地方法,可将所有方法封装成一个类,通过调用类方法实现所有。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { // 里面按照各自判断标准去写,其主要就是根据request转成字符串进行处理,判断是什么请求事件 NSString *requestString = [[request URL] absoluteString]; NSArray *components = [requestString componentsSeparatedByString:@":"]; if ([components count] > 1 && [(NSString *)[components objectAtIndex:0] isEqualToString:@"file"]) { } NSLog(@"requestString = %@",requestString); if ([requestString hasPrefix:@"pr://"]) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"开始" message:@"提示点" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; } return YES; }
相关文章推荐
- 增强现实(AR)笔记4:ObjectRecognition实操
- Java中的Object类
- Understanding Runtime
- Objective-C Runtime 运行时之五:协议与分类
- Objective-C Runtime 运行时之四:Method Swizzling
- UiObject2介绍
- HowTo Perform the spatial selection 'Share a line segment with' using ArcObjects
- iOS 7应用开发公开课笔记 L3:Objective-C
- android 中Jsonobject里的键值是动态时,获得键值key
- Objective-C Block的实现
- Objective-C学习-NSSet(集合),NSMutableSet(可变集合) NSCountSet(计数集合)
- Objective-C:神在细节之中
- Objective-C Associated Objects 的实现原理
- Objective-C 的动态提示和技巧
- Core Data浅谈系列之三 : 了解NSManagedObject和NSPredicate(附Demo)
- 问题1 String类和Object类中的equals方法比较
- 【转载】Animation 动画(三)ObjectAnimator、valueAnimator
- Objective-C 中的元类(meta class)
- [iOS]Objective-C的语言版本,与Xcode版本有对应关系吗?
- IOS开发基础Object-C(08)—OC内存管理(2)-对象之间的内存管理