Mac10.9和iOS7新公开的框架JavaScriptCore.framework
2013-12-01 01:22
441 查看
官网的介绍:
The JavaScript Core framework (
JavaScript objects. Use this framework to evaluate JavaScript code and parse JSON data. For information about the classes of this framework, see the header files.
网上的翻译是:提供了用Objective-C封装的大量标准JavaScript对象。通过该framework可以对JavaScript代码进行评估(evaluate),以及解析JSON。
实际也就是开放一个JavaScript的运行环境,供执行js代码。一些数据处理和运算不必再转成Objective-C来写,Apple帮忙搞定,每个JavaScript的对象都可以用C和Objective-C的类来访问。
目前还没有详细的文档描述接口的使用,但可以直接看代码头文件先睹为快。
在xcode5工程中导入JavaScriptCore.framework,
可以查看到其公开的头文件,里面就是新的API了。
这些文件里的信息会有帮助:
JSBase.h:声明了使用js的基本C函数:JSEvaluateScript执行,JSCheckScriptSyntax检查语法,JSGarbageCollect垃圾收集,都需要传入JSContextRef参数。
JSContext.h和JSContextRef.h:前者是Objective-C的接口,后者是C的接口,是JavaScript运行上下文的表示。
JSManagedValue.h、JSObjectRef.h、JSStringRef.h、JSStringRefCF.h、JSValue.h、JSValueRef.h:都是对javascript对象的C/Objective-C表示,提供不同语言的接口来访问和操作js对象。
[cpp] view
plaincopy
// Objective-C type | JavaScript type
// --------------------+---------------------
// nil | undefined
// NSNull | null
// NSString | string
// NSNumber | number, boolean
// NSDictionary | Object object
// NSArray | Array object
// NSDate | Date object
// NSBlock * | Function object *
// id ** | Wrapper object **
// Class *** | Constructor object ***
JSVirtualMachine.h:js虚拟机的表示,可以自己管理对象引用。object graphs的概念可参考http://howtonode.org/object-graphs
JavaScriptCore.framework是开源WebKit的一部分,从WWDC的介绍来看,Apple对Safari和WebKit做了很多优化和升级,看来这些开放的接口也是优化升级的一部分成果。Apple对开发者开放的WebKit接口通常都是Mac公开的多,iOS公开的少。这次也公开JavaScriptCore.framework这些新接口到iOS上,应该会是很给力的升级了。
因为还没有文档教怎么使用新框架,还需继续折腾尝试,最快的方法是直接查看最新的Mac WebKit源码是怎么应用这些API的。
例如:
[cpp] view
plaincopy
static void* runJavaScriptThread(void* arg)
{
JSGlobalContextRef ctx = JSGlobalContextCreate(0);
JSStringRef scriptRef = JSStringCreateWithUTF8CString("'Hello World!'");
JSValueRef exception = 0;
JSEvaluateScript(ctx, scriptRef, 0, 0, 1, &exception);
ASSERT(!exception);
JSGlobalContextRelease(ctx);
JSStringRelease(scriptRef);
return 0;
}
The JavaScript Core framework (
JavaScriptCore.framework) provides Objective-C wrapper classes for many standard
JavaScript objects. Use this framework to evaluate JavaScript code and parse JSON data. For information about the classes of this framework, see the header files.
网上的翻译是:提供了用Objective-C封装的大量标准JavaScript对象。通过该framework可以对JavaScript代码进行评估(evaluate),以及解析JSON。
实际也就是开放一个JavaScript的运行环境,供执行js代码。一些数据处理和运算不必再转成Objective-C来写,Apple帮忙搞定,每个JavaScript的对象都可以用C和Objective-C的类来访问。
目前还没有详细的文档描述接口的使用,但可以直接看代码头文件先睹为快。
在xcode5工程中导入JavaScriptCore.framework,
可以查看到其公开的头文件,里面就是新的API了。
这些文件里的信息会有帮助:
JSBase.h:声明了使用js的基本C函数:JSEvaluateScript执行,JSCheckScriptSyntax检查语法,JSGarbageCollect垃圾收集,都需要传入JSContextRef参数。
JSContext.h和JSContextRef.h:前者是Objective-C的接口,后者是C的接口,是JavaScript运行上下文的表示。
JSManagedValue.h、JSObjectRef.h、JSStringRef.h、JSStringRefCF.h、JSValue.h、JSValueRef.h:都是对javascript对象的C/Objective-C表示,提供不同语言的接口来访问和操作js对象。
[cpp] view
plaincopy
// Objective-C type | JavaScript type
// --------------------+---------------------
// nil | undefined
// NSNull | null
// NSString | string
// NSNumber | number, boolean
// NSDictionary | Object object
// NSArray | Array object
// NSDate | Date object
// NSBlock * | Function object *
// id ** | Wrapper object **
// Class *** | Constructor object ***
JSVirtualMachine.h:js虚拟机的表示,可以自己管理对象引用。object graphs的概念可参考http://howtonode.org/object-graphs
JavaScriptCore.framework是开源WebKit的一部分,从WWDC的介绍来看,Apple对Safari和WebKit做了很多优化和升级,看来这些开放的接口也是优化升级的一部分成果。Apple对开发者开放的WebKit接口通常都是Mac公开的多,iOS公开的少。这次也公开JavaScriptCore.framework这些新接口到iOS上,应该会是很给力的升级了。
因为还没有文档教怎么使用新框架,还需继续折腾尝试,最快的方法是直接查看最新的Mac WebKit源码是怎么应用这些API的。
例如:
[cpp] view
plaincopy
static void* runJavaScriptThread(void* arg)
{
JSGlobalContextRef ctx = JSGlobalContextCreate(0);
JSStringRef scriptRef = JSStringCreateWithUTF8CString("'Hello World!'");
JSValueRef exception = 0;
JSEvaluateScript(ctx, scriptRef, 0, 0, 1, &exception);
ASSERT(!exception);
JSGlobalContextRelease(ctx);
JSStringRelease(scriptRef);
return 0;
}
相关文章推荐
- Mac10.9和iOS7新公开的框架JavaScriptCore.framework
- IOS-30-Hybrid混合开发(二):实现javaScript页面与OC界面互调demo(iOS7之前与之后javascriptCore.framework)
- JavaScriptCore框架在iOS7中的对象交互和管理
- iOS7新JavaScriptCore框架入门介绍(一)
- iOS7新JavaScriptCore框架入门介绍(二)
- iOS7新JavaScriptCore框架介绍
- iOS7新JavaScriptCore框架入门介绍
- iOS7新JavaScriptCore框架介绍
- JavaScriptCore框架在iOS7中的对象交互和管理
- ios7 JavaScriptCore.framework
- iOS7新JavaScriptCore框架入门介绍
- iOS7新JavaScriptCore框架入门介绍
- IOS7新JavaScriptCore框架入门介绍
- iOS7新JavaScriptCore框架入门介绍(一)
- 关于iOS7里的JavaScriptCore framework
- iOS7新JavaScriptCore框架入门介绍
- iOS7新JavaScriptCore框架入门介绍
- iOS7新JavaScriptCore框架入门介绍
- iOS7新JavaScriptCore框架入门介绍
- iOS7新JavaScriptCore框架介绍