iOS下JS与原生OC互相调用
2016-02-24 00:00
483 查看
摘要: iOS开发免不了要与UIWebView打交道,然后就要涉及到JS与原生OC交互,今天总结一下JS与原生OC交互的两种方式。
今天需要做html 和oc 的调用 找到一篇文章,实现了功能。转载纪录一下。
在iOS 7之后,apple添加了一个新的库JavaScriptCore,用来做JS交互,因此JS与原生OC交互也变得简单了许多。
首先导入JavaScriptCore库, 然后在OC中获取JS的上下文
再然后定义好JS需要调用的方法,例如JS要调用share方法:
则可以在UIWebView加载url完成后,在其代理方法中添加要调用的share方法:
其中相对应的html部分如下:
今天需要做html 和oc 的调用 找到一篇文章,实现了功能。转载纪录一下。
在iOS 7之后,apple添加了一个新的库JavaScriptCore,用来做JS交互,因此JS与原生OC交互也变得简单了许多。
首先导入JavaScriptCore库, 然后在OC中获取JS的上下文
JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
再然后定义好JS需要调用的方法,例如JS要调用share方法:
则可以在UIWebView加载url完成后,在其代理方法中添加要调用的share方法:
- (void)webViewDidFinishLoad:(UIWebView *)webView { JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; //定义好JS要调用的方法, share就是调用的share方法名 context[@"share"] = ^() { NSLog(@"+++++++Begin Log+++++++"); NSArray *args = [JSContext currentArguments]; UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"方式" message:@"OC原生的弹出窗" delegate:self cancelButtonTitle:@"收到" otherButtonTitles:nil]; [alertView show]; for (JSValue *jsVal in args) { NSLog(@"%@", jsVal.toString); } NSLog(@"-------End Log-------"); }; }
其中相对应的html部分如下:
<html> <header> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> function secondClick() { share('分享的标题','分享的内容','图片地址'); } function showAlert(message){ alert(message); } </script> </header> <body> <h2> 方式 </h2> <br/> <br/> <button type="button" onclick="secondClick()">Click Me!</button> </body> </html>
相关文章推荐
- ios 时间操作 根据当前时间 获取昨天 今天 明天
- ios短信验证码倒计时功能
- [iOS问题归总]SourceTree+osChina版本管理出现的问题
- iOS开发-frame与bounds
- iOS 中这些是否熟练掌握——(2)
- [iOS]SourceTree+oschina实现代码远程托管
- iOS keychain入门
- Nagios各组件简述及nrpe详解
- ios基础
- iOS-点击推送消息跳转处理
- ios 中如何实现程序内访问其他程序
- iOS学习----------FMDB解析
- iOS-多线程编程学习之NSOperation(四)
- ios-基础用法之【7】-@class
- iOS开发之归档解档runtime封装演示
- 面向对象7
- kidd风IOS开发日志之Git的常用终端指令
- IOS8 不用计算Cell高度的TableView实现方案
- 基础iOS
- iOS基础概念