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:// ...
随机推荐
- UML绘图工具
画UML图与写文章差不多,都是把自己的思想描述给别人看,关键在于思路和条理,图好看与否就是看你的字是否规范,至于工具,就像你用什么笔,不算非常重要. 目前市场上常见的建模工具有StarUML,IBM ...
- python之scrapy模块下载中间件
知识点 使用方法: 编写一个Downloader Middlewares和我们编写一个pipeline一样,定义一个类,然后在setting中开启 Downloader Middlewares默认的方 ...
- spring cloud consul上下线体验
spring cloud consul中默认会将spring.application.name作为ID 同一服务起多个实例时,ID默认会变成${spring.application.name}-${s ...
- 在jsp页面如何获得url参数
方法一:当一个url过来时,如:http://localhost:8080/pro/demo/hello.jsp?name=john,在hello.jsp页面,我们可以这样得到name的值: < ...
- kettle记录集(Merge Join)使用
果两个表需要进行连接查询筛选出数据,那么可以使用记录集组件.(Merge Join). 使用之前要进行排序: 使用记录集之前,要对输入的两张表进行排序,如果不排序,会导致两张表连接的时候出现问题,关联 ...
- Minimum number of swaps required to sort an array
https://www.hackerrank.com/challenges/minimum-swaps-2/problem Minimum Swaps II You are given an unor ...
- 【Hadoop】MapReduce自定义分区Partition输出各运营商的手机号码
MapReduce和自定义Partition MobileDriver主类 package Partition; import org.apache.hadoop.io.NullWritable; i ...
- 李宏毅 Keras2.0演示
李宏毅 Keras2.0演示 不得不说李宏毅老师讲课的风格我真的十分喜欢的. 在keras2.0中,李宏毅老师演示的是手写数字识别(这个深度学习框架中的hello world) 创建网络 首先我们需要 ...
- python之迭代器、可迭代对象、生成器、生成器对象、枚举类型
迭代器 # 迭代器:循环反馈的容器(集合类型)# -- 不同于索引取值,但也可以循环的从容器对象中从前往后逐个返回内部的值# 优点:不依赖索引,完成取值# 缺点:不能计算长度,不能指定位取值(只能从 ...
- Linux企业面试题(一)
一.如何过滤出已知当前目录dongdaxia中的所有一级目录(提示:不包含dongdaxia目录下面目录的子目录及隐藏目录,即只能是一级目录)? 1. 过滤以“d”开头的 2.查看以/结尾的目录 3. ...