Telerik公开了用于建立安卓、iOS和Windows Universal跨平台原生应用的框架,NativeScript的公共访问权限。html
NativeScript既不是一种新型的JavaScript语言,也不是原生功能的封装器,它包括一个JavaScript运行时环境和一种将JavaScript调用转化为原生调用的机制。用JavaScript(或TypeScript,CoffeeScript等)语言编写应用,以后在安卓平台用V8,在iOS和Windows Phone上用WebKit JavaScriptCore解释应用。而后,NativeScript运行时环境找到原生的目标API,将JS数据类型转化为相应的原生类型,而后调用原生API,并将获得的结果值返回,具体流程以下图所示:java
举例来讲,在安卓平台上建立文件对象var file = new java.io.File(path);的步骤以下:android
据Telerik介绍,与纯原生代码相比NativeScript运行时环境会带来大概10%的性能损失。ios
NativeScript能够将其所支持平台上的任意原生API做为目标,包括传感器接口API和用Objective C,Java或.NET编写的第三方库。UI组件是原生的,UI事件由在JavaScript代码中声明的原生处理程序处理,如View.OnClickListener,UIControl.addTarget。git
为了不开发者须要对三个支持的平台有深刻的理解,该框架包含了一个抽象与原生代码链接的NativeScript模块层(NativeScript Modules Layer,NML),能够自动将JavaScript调用转化为原生调用。NML包含以下模块:Application,Camera,Color,Console,Data,File System,HTTP,Imaging,Local Settings,Location,Timer,UI。开发者并未受限于只能使用NML,也能够访问任意原生API。github
NativeScript其它一些功能简单列示以下:web
NativeScript是一个基于Apache 2.0许可的Github开源项目。浏览器
查看英文原文:Creating Mobile Native Apps in JavaScript with NativeScriptapp