OC与JavaScript交互学习过程中的资料整理
2016-03-11 14:04
591 查看
1、首先,从iOS7开始苹果公布开始使用JavaScriptCore.framework进行JS与OC的交互,使得交互过程更加方便。所以首先要大致学习JavaScriptCore.framework框架,cocoachina中有一篇不错的文章,网址如下:JavaScriptCore框架学习
2、有一个试用JavaScriptCore.framework框架的博客讲解的好不错,可以初步入门,网址如下:博客第一篇、博客第二篇
3、学习JavaScript,至少要学会怎么使用,有几篇不错的博客:javascript入门经典学习笔记、javascript教程、javascript入门到精通
4、ios7之前oc与javascript的交互参考网址:旧的交互方式
a、以下是阅读JavaScriptCore框架学习时认为比较有用的信息
JSContext提供了类方法来获取参数列表(+ (JSContext *)currentContext;)和当前调用该方法的对象(+ (JSValue *)currentThis)。对于"this",输出的内容是GlobalObject,这也是JSContext对象方法-
(JSValue *)globalObject;所返回的内容。因为我们知道在JavaScript里,所有全局变量和方法其实都是一个全局变量的属性,在浏览器中是window,在JavaScriptCore是什么就不得而知了。
Block可以传入JSContext作方法,但是JSValue没有toBlock方法来把JavaScript方法变成Block在Objetive-C中使用。毕竟Block的参数个数和类型已经返回类型都是固定的。虽然不能把方法提取出来,但是JSValue提供了-
(JSValue *)callWithArguments:(NSArray *)arguments;方法可以反过来将参数传进去来调用方法。
JSValue还提供- (JSValue *)invokeMethod:(NSString *)method withArguments:(NSArray *)arguments;让我们可以直接简单地调用对象上的方法。只是如果定义的方法是全局函数,那么很显然应该在JSContext的globalObject对象上调用该方法;如果是某JavaScript对象上的方法,就应该用相应的JSValue对象调用。
2、有一个试用JavaScriptCore.framework框架的博客讲解的好不错,可以初步入门,网址如下:博客第一篇、博客第二篇
3、学习JavaScript,至少要学会怎么使用,有几篇不错的博客:javascript入门经典学习笔记、javascript教程、javascript入门到精通
4、ios7之前oc与javascript的交互参考网址:旧的交互方式
a、以下是阅读JavaScriptCore框架学习时认为比较有用的信息
JSContext提供了类方法来获取参数列表(+ (JSContext *)currentContext;)和当前调用该方法的对象(+ (JSValue *)currentThis)。对于"this",输出的内容是GlobalObject,这也是JSContext对象方法-
(JSValue *)globalObject;所返回的内容。因为我们知道在JavaScript里,所有全局变量和方法其实都是一个全局变量的属性,在浏览器中是window,在JavaScriptCore是什么就不得而知了。
Block可以传入JSContext作方法,但是JSValue没有toBlock方法来把JavaScript方法变成Block在Objetive-C中使用。毕竟Block的参数个数和类型已经返回类型都是固定的。虽然不能把方法提取出来,但是JSValue提供了-
(JSValue *)callWithArguments:(NSArray *)arguments;方法可以反过来将参数传进去来调用方法。
JSValue还提供- (JSValue *)invokeMethod:(NSString *)method withArguments:(NSArray *)arguments;让我们可以直接简单地调用对象上的方法。只是如果定义的方法是全局函数,那么很显然应该在JSContext的globalObject对象上调用该方法;如果是某JavaScript对象上的方法,就应该用相应的JSValue对象调用。
相关文章推荐
- Json FastJson Gson介绍与使用
- JS实现DIV盒子高度为宽度2倍
- jsoup爬取指定网页的url和图片
- JS验证电话和传真号码格式
- JS验证手机号码格式
- JS验证用户名必须以字母(不区分大小写)、数字、下划线(_)随意组合的字符
- JS判断URL网址格式(可匹配中文)
- JSP中的坑(一):一个空格都不能少
- alibaba fastjson 相关资料记录
- json-lib 的maven dependency 异常解决方案
- JS获取字符串长度,1个中文=2个英文
- alibaba的FastJson(高性能JSON开发包),fastjson 使用demo
- js操作svg整体缩放
- javascript html5 canvas实现可拖动省份的中国地图
- JavaScript事件详解
- JSON和对象之前的相互转换
- angular.js学习笔记之一
- javascript笔记:通过对作用域链和执行环境的深入理解所得出的提高javascript代码性能的建议 《转载》...
- JS通过使用PDFJS实现基于文件流的预览功能
- js仿百度登录页实现拖动窗口效果