Mac10.9和iOS7新公开的框架JavaScriptCore.framework

简介: 官网的介绍: The JavaScript Core framework (JavaScriptCore.framework) provides Objective-C wrapper classes for many standard JavaScript objects.

官网的介绍

  • 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对象。

//   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 ***


JavaScriptCore.framework是开源WebKit的一部分,从WWDC的介绍来看,Apple对Safari和WebKit做了很多优化和升级,看来这些开放的接口也是优化升级的一部分成果。Apple对开发者开放的WebKit接口通常都是Mac公开的多,iOS公开的少。这次也公开JavaScriptCore.framework这些新接口到iOS上,应该会是很给力的升级了。


因为还没有文档教怎么使用新框架,还需继续折腾尝试,最快的方法是直接查看最新的Mac WebKit源码是怎么应用这些API的。

例如:

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;
}

各位前锋们一起加油吧。


转载请注明出处:http://blog.csdn.net/hursing

目录
相关文章
|
1月前
|
算法 计算机视觉 iOS开发
iOS 实时图像处理技术:Core Image 框架的应用
【4月更文挑战第8天】 在移动设备上实现高效的图像处理功能,对于提升用户体验和扩展应用程序能力至关重要。苹果公司的iOS平台提供了强大的Core Image框架,它允许开发者以高效和直观的方式执行复杂的图像处理任务。本文将深入探讨Core Image框架的关键特性,并通过实例演示如何在iOS应用中集成实时图像处理功能,不仅提高性能,同时保持了电池寿命的优化。我们将重点讨论面部识别、滤镜应用和性能优化等关键技术点,为读者提供一份全面的iOS图像处理指南。
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
是否有其他框架可以在iOS设备上进行机器学习?
是否有其他框架可以在iOS设备上进行机器学习?
21 1
|
4月前
|
存储 数据建模 iOS开发
iOS设备功能和框架: 什么是 Core Data,它在 iOS 中的作用是什么?
iOS设备功能和框架: 什么是 Core Data,它在 iOS 中的作用是什么?
34 1
|
4月前
|
定位技术 iOS开发
iOS设备功能和框架: 如何使用 Core Location 获取设备的位置信息?
iOS设备功能和框架: 如何使用 Core Location 获取设备的位置信息?
20 0
|
存储 分布式计算 资源调度
Hadoop系列之一:MAC安装Hadoop大数据框架
Hadoop是一个用Java开发的开源框架,它允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。它的设计是从单个服务器扩展到数千个机器,每个都提供本地计算和存储。特别适合写一次,读多次的场景。
Hadoop系列之一:MAC安装Hadoop大数据框架
|
1月前
|
移动开发 网络协议 小程序
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v9.0版已发布
MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp,服务端基于Netty编写。
44 0
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
35 0
|
4月前
|
iOS开发
iOS设备功能和框架: 如何使用 Core Animation 创建动画效果?
iOS设备功能和框架: 如何使用 Core Animation 创建动画效果?
101 0
|
6月前
|
小程序 开发工具 Android开发
Donut多端框架小程序打包适配ios和安卓app
腾讯新出了一个 Donut 多端框架,可以直接将微信小程序转成 ios 和 安卓 app,小程序开发者工具里也集成了 app 相关升级、调试和打包的功能,终于可以一套代码开发出3个客户端了!
137 0
Donut多端框架小程序打包适配ios和安卓app
|
6月前
|
移动开发 网络协议 安全
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v8.0版已发布
MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp,服务端基于Netty编写。
73 0