跨平台移动端开发 NativeScript

2015年06月02日 08:56 264 次阅读 来源: 开源中国 作者: 路人甲
摘要 NativeScript 可以使用 Javascript,CSS, XML 创建真正的 Native 跨平台应用,支持 iOS Android,NativeScript 将您的跨平台代码翻译成目标平台的代码。UI 使用 XML 描述,CSS 样式,在编译时将 UI 转化成本地原生代码,最终得到正在的 Native 原生应用。Telerik 公开了用于创建安卓、iOS和Windows Univers...

        NativeScript 可以使用 Javascript,CSS, XML 创建真正的 Native 跨平台应用,支持 iOS Android,NativeScript 将您的跨平台代码翻译成目标平台的代码。


        UI 使用 XML 描述,CSS 样式,在编译时将 UI 转化成本地原生代码,最终得到正在的 Native 原生应用。


        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.OnClickListener,UIControl.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。

即时支持新的原生平台。

还可以输入136 讨论区:
评 论