NativeScript —— 初级入门(跨平台的手机APP应用)《一》
NativeScript简介
- NativeScript是一个相当新的开源开发系统,几乎完全用JavaScript创建跨平台移动应用程序,带有一些可选的CSS和XML来简化显示布局的开发。您可以在https://github.com/NativeScript 找到构成NativeScript的每个主要项目的位置。即使它是市场上的新手,它已经完全兼容Apple的iOS和谷歌的Android。 此外,还有微软的Windows Mobile。 NativeScript 使用Android上的V8引擎(由GoogleChrome和node.js使用)和iOS设备上的Apple的JavaScriptCore引擎。
现在,还有其他几种用于移动设备的JavaScript开发系统。 其中一些竞争对手已经建立了一段时间。其他开发系统可能有大公司在开发它们。 但这些都不会使任何其他工具成为最佳选择。NativeScript从众多其他JavaScript环境中脱颖而出的原因在于其独特的设计。其他每个JavaScript环境都需要一个特殊的桥接器或某种类型的编译扩展,它基本上将主机操作系统的一些本机功能暴露给您的JavaScript代码。其中很多实际上只是包含在应用程序shell中的Web浏览器,因此您所做的所有工作实际上都在浏览器中。如果您决定在其他产品中使用iOS手机上的蓝牙,则必须找到使用其他非JavaScript语言制作iOS蓝牙桥接器或扩展模块的人。在很多情况下,您甚至必须编译模块,然后该模块才具有您需要的所有功能。
1 例如,要找出文件是否存在,我们可以在JavaScript中调用原生Android方法:
2 var javaFile = new java.io.File('/some/file/name.ext');
3 var exists = javaFile.exists();
4
5 或者JavaScript中的原生iOS Objective C代码:
6 var fileManager = NSFileManager.defaultManager();
7 var exists = fileManager.fileExistsAtPath('/some/file/name.ext');- 由于NativeScript允许您从JavaScript代码访问完整的操作系统库和第三方库,因此您无需等待其他人创建包装器或桥接器来与iOS或Android的API任何部分进行通信。 您现在可以完全使用任何API作为一等公民,甚至可以使用任何在首次发布的新API。
现在,在您担心必须掌握iOS和Android来制作应用程序之前,NativeScript已经替你解决了这一点。 为简化起见,NativeScript已经拥有大量组件或模块,这些组件或模块包含了开发人员需要的最常见的东西,NativeScript称为通用核心模块。 因此,您不必像上面那样编写Android或iOS特定代码来查看文件是否存在,您只需编写以下代码即可:
1 var fs = require('file-system');
2 var exists = fs.File.exists(path);NativeScript文件系统模块包含了每个本机平台的API,因此您只需要写入通用接口即可。 但是,当您需要在内置模块和组件之外执行某些操作时,NativeScript是唯一允许您通过JavaScript轻松完全访问设备提供的所有内容的环境。
- NativeScript 命令行,实用程序,通用模块和组件都是用TypeScript编写的。 然后将TypeScript转换为JavaScript,然后分发给所有开发人员以供下载,安装和使用。 因此,除非您实际从NativeScript存储库中提取开源代码,否则您将看到的所有代码都是JavaScript。
- 创建通用模块是为了解决JavaScript文件使用变量和函数污染全局命名空间的问题,而另一个JavaScript文件可能会意外的覆盖。 JavaScript允许您随心所欲地重新声明或修改您的功能,这是使其如此强大的一部分。 然而,有了这么大的功能,能够很容易地也误伤自己。 然后,出现各种无头无脑的错误。 为了解决一个文件功能或变量被另一个文件覆盖的问题,开发人员提出了几种技术,这些技术演变成我们今天的通用模块格式。 您可以使用三种标准:CommonJSmodule格式,即node.js推广的格式; AMDmodule格式,专为在浏览器环境中异步解析JavaScript文件而设计; 以及全新的ECMAscript 6模块格式,在最终发布时,应该成为事实上的模块格式。 它们都包装了源代码,因此默认情况下模块中的所有代码都不会干扰全局命名空间。 NativeScript遵循CommonJSmodule格式,您可以在其中使用exports和module.export来告诉您希望向外部各方公开的模块中的代码部分。 当您看到var coolModule = require('cool-module');时,这是CommonJSmodule格式用于加载模块的语法。
安装NativeScript
- 要开始使用NativeScript,我们首先必须安装多个工具。 几乎所有内容的主要工具是nativescript命令,或者您也可以使用较短的tns别名(Telerik NativeScript的缩写)。
- 要安装nativescript命令并使其工作,必须首先安装node.js,可以从 https://nodejs. org/ 下载和安装。nativescript命令也是用TypeScript编写的,在你下载它之前已经预转换为JavaScript。 它使用node.js和其他几个常用模块来执行其所有工作。
- 一旦你安装了node.js,你只需要在终端做一个简单的npm install -g nativescript 命令,(或者在Windows上称为命令提示符窗口)。 然后npm将下载并安装所需的NativeScript代码和命令行工具。 它将全局安装它,以便可以从您正在处理的任何项目中使用它。
- 更多安装细节请移步:https://docs.nativescript.org/start/quick-setup
- 这里不在过多废话。。。这里不在过多废话。。。
NativeScript —— 初级入门(跨平台的手机APP应用)《一》的更多相关文章
- eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(二)
eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(二) 接上篇博客,本篇博客主要包含两个内容: 4.使用Android studio创建webservice客 ...
- NativeScript —— 初级入门(跨平台的手机APP应用)《二》
NativeScript项目结构 根文件夹 package.json —— 这是适用于整个应用程序的NativeScript主项目配置文件. 它基本概述了项目的基本信息和所有平台要求. 当您添加和删除 ...
- NativeScript - JS 构建跨平台的原生 APP
使用 NativeScript,你可以用现有的 JavaScript 和 CSS 技术来编写 iOS.Android 和 Windows Phone 原生移动应用程序.由原生平台的呈现引擎呈现界面而不 ...
- Python爬虫入门教程 29-100 手机APP数据抓取 pyspider
1. 手机APP数据----写在前面 继续练习pyspider的使用,最近搜索了一些这个框架的一些使用技巧,发现文档竟然挺难理解的,不过使用起来暂时没有障碍,估摸着,要在写个5篇左右关于这个框架的教程 ...
- eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(一)
eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(一) 本篇博客主要包含五个内容: 1.CXF换将搭建以及eclipse配置CXF. 2.eclipse创建w ...
- [转帖]H5 手机 App 开发入门:技术篇
H5 手机 App 开发入门:技术篇 http://www.ruanyifeng.com/blog/2019/12/mobile-app-technology-stack.html 阮一峰老师的文 ...
- 【转帖】H5 手机 App 开发入门:概念篇
H5 手机 App 开发入门:概念篇 http://www.ruanyifeng.com/blog/2019/12/hybrid-app-concepts.html 作者: 阮一峰 日期: 2019年 ...
- HTML5手机APP开发入门(2)
HTML5手机APP开发入门(2) 课程内容 使用IonicFramework v2 + angular 2 完成一个简单的联系人列表的操作,有三个页面: ListPage,DetailPage,Ad ...
- HTML5手机APP开发入门(1)
HTML5手机APP开发入门(1) 开发框架 Ionicframework V2 + Angular 2 具体内容可以参考一下网站 http://ionicframework.net/ http:// ...
随机推荐
- 在业务控制方法中写入包装User的模型来收集参数
可以在业务控制方法中书写0个或多个模型来收集客户端的参数 1) 如果多个模型中有相同的属性时,可以用user.name或admin.name来收集客户端参数 2) 用一个新的模型将User和Adm ...
- Python - 二叉树, 堆, headq 模块
二叉树 概念 二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树), 或者由一个根结点和两棵互不相交的.分别称为根结点的左子树和右子树组成. 特点 每个结点最多有两颗子树,所 ...
- Rancher-k8s加速安装文档
Kubernetes是一个强大的容器编排工具,帮助用户在可伸缩性系统上可靠部署和运行容器化应用.Rancher容器管理平台原生支持K8s,使用户可以简单轻松地部署K8s集群. 很多同学正常部署k8s环 ...
- Linux md5sum 命令
Linux md5sum 命令 通过 Linux 的 md5sum 命令,可以对指定的文件,计算出唯一的一个MD5值(128bit). 通过比较文件前后的MD5值,可以判断文件是否发生变化(是否被修改 ...
- Mac运行React Native安卓项目报错解决
传送门参考: 下面的这个链接很详细了,一步一步就好.... https://github.com/NARUTOyuyang/React-Native 然而在运行react-native run-and ...
- VAEs(变分自编码)之keras实践
VAEs最早由“Diederik P. Kingma and Max Welling, “Auto-Encoding Variational Bayes, arXiv (2013)”和“Danilo ...
- Java 基础篇之泛型
背景 在没有泛型前,一旦把一个对象丢进集合中,集合就会忘记对象的类型,把所有的对象都当成 Object 类型处理.当程序从集合中取出对象后,就需要进行强制类型转换,这种转换很容易引起 ClassCas ...
- 版权动态日记页脚 JS
关键代码如下 <script>document.write(new Date().getFullYear())</script> js方法 new Date() //实例化Da ...
- flask LOCAL线程隔离技术
from threading import Thread from werkzeug.local import Local local = Local()#实例化一个线程隔离对象 request = ...
- arm-linux的gdb移植
转载于:http://blog.chinaunix.net/uid-23381466-id-309369.html arm-linux的gdb移植分为两种情况.一种是交叉调试版.这一种模式是需要编译一 ...