Telerik公开了用于创建安卓、iOS和Windows Universal跨平台原生应用的框架,NativeScript的公共访问权限。

NativeScript既不是一种新型的JavaScript语言,也不是原生功能的封装器,它包括一个JavaScript运行时环境和一种将JavaScript调用转化为原生调用的机制。用JavaScript(或TypeScript,CoffeeScript等)语言编写应用,之后在安卓平台用V8,在iOS和Windows Phone上用WebKit JavaScriptCore解释应用。然后,NativeScript运行时环境找到原生的目标API,将JS数据类型转化为相应的原生类型,然后调用原生API,并将得到的结果值返回,具体流程如下图所示

举例来说,在安卓平台上创建文件对象var file = new java.io.File(path);的步骤如下:

  • 用V8解释代码
  • 根据原数据确定相应的原生方法调用。原数据是在各个平台上预先构建的提供类型和方法签名的全部可用API集合。
  • 类型转换模块将JavaScript的String类型转换为一个java.lang.String对象
  • 运行时环境为java.io.File创建一个代理对象
  • 通过该代理将对原有JS File对象的调用委托给相应的Java实例

据Telerik介绍,与纯原生代码相比NativeScript运行时环境会带来大概10%的性能损失。

NativeScript可以将其所支持平台上的任意原生API作为目标,包括传感器接口API和用Objective C,Java或.NET编写的第三方库。UI组件是原生的,UI事件由在JavaScript代码中声明的原生处理程序处理,如View.OnClickListenerUIControl.addTarget

为了避免开发者需要对三个支持的平台有深入的理解,该框架包含了一个抽象与原生代码连接的NativeScript模块层(NativeScript Modules Layer,NML),可以自动将JavaScript调用转化为原生调用。NML包含如下模块:Application,Camera,Color,Console,Data,File System,HTTP,Imaging,Local Settings,Location,Timer,UI。开发者并未受限于只能使用NML,也可以访问任意原生API。

NativeScript其它一些功能简单列示如下:

  • 当前支持平台:iOS7+,安卓4.2+。预计将在4月实现Windows Phone的支持。对安卓早期版本的支持也将很快到来。
  • iOS平台的编译可以在远程完成,无需Mac电脑或iOS工具
  • 开发工作可以在任意IDE中完成。
  • 支持任意跨浏览器的JavaScript库。
  • 支持CSS。
  • 支持MVVM。
  • 即时支持新的原生平台。

NativeScript是一个基于Apache 2.0许可的Github开源项目

查看英文原文:Creating Mobile Native Apps in JavaScript with NativeScript

最新文章

  1. what is difference in (int)a,(int&)a,&a,int(&a) ?
  2. gzip压缩及测试方法【转载】
  3. Linux系统启动过程分析
  4. 【MySQL】主备复制
  5. LeetCode 2 Add Two Sum 解题报告
  6. 思维固化,addTarget难道就只能给self
  7. Jenkins 安装与配置
  8. Spring之IOC容器初始化过程
  9. Eclipse4.4安装旧版本插件报错 Failed to prepare partial IU
  10. Int16 Int32 Int64
  11. JS关闭页面无提示
  12. Redmine(Ruby)配置经验
  13. Tiny6410之MMU开启
  14. Mysql内置优化工具show profiles
  15. vue2.* 事件 定义方法 执行方法 获取数据 改变数据 执行方法传值 以及事件对象 05
  16. swd 适配器接口线序
  17. 基础概念——何为GNU与GCC
  18. sylk文件
  19. 修改ubuntu下网卡名不是eth0的问题
  20. Tags Used In OpenERP 7.0

热门文章

  1. BZOJ 3251 树上三角形
  2. 10年省赛-Greatest Number (二分+暴力) + 12年省赛-Pick apples(DP) + UVA 12325(暴力-2次枚举)
  3. 作业1-我的第一个博客&GuiHub简单练习
  4. simple grammer
  5. 8、C#基础整理(数组和冒泡排序)
  6. CODEVS1001 舒适的路线 (并查集)
  7. JS获取年月日
  8. hadoop shell 详解
  9. OGRE 2.1 Windows 编译
  10. Java Super 覆盖方法