您的位置:首页 > Web前端 > JavaScript

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对象调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: