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:// ...
随机推荐
- [Mysql]一对多关系是如何发挥作用的?
一个孩子只有一个妈妈,而一个妈妈可以有多个孩子,这是典型的一对多的关系,这里采用navicat图形化界面建立二者的关系. 第一步:创建mother表,如下图: 第二步:创建children表,在ch ...
- Qt编写数据可视化大屏界面电子看板2-配色方案
一.前言 做完整个数据可视化大屏界面电子看板系统后,为了提升点逼格,需要提供好几套默认的风格样式以供选择,这样用户可以选择自己喜欢的配色方案来作为整个系统的颜色方案,去看了下市面上大部分的大屏电子看板 ...
- coreDNS域名无法解析问题
问题: 在pod内无法解析域名 解决: busybox的镜像有bug,导致ping可以解析,但是nslookup无法解析 kubectl run -it --rm --image=infoblox/d ...
- mysql锁表机制分析
http://blog.csdn.net/u010942020/article/details/51925653
- Validform表单验证时的 【坑】
代码如下 <input style="width: 360px" name="ll_wb_job.qcwyJobUrl" value="&quo ...
- java数据结构之WeakHashMap
一.JAVA中的四种引用类型 1.强引用(StrongReference):强引用是最为普遍的一种引用,如果对象被强引用,那么垃圾回收器无论如何都不会回收它,当内存不足时会抛出OutOfMemoryE ...
- sha256算法原理
1. SHA256简介 SHA256是SHA-2下细分出的一种算法 SHA-2下又可再分为六个不同的算法标准 包括了:SHA-224.SHA-256.SHA-384.SHA-512.SHA-512/2 ...
- MySQL中的聚集索引和辅助索引
MySQL中的聚集索引和辅助索引 当你定义一个主键时,innodb存储引擎就把他当做聚集索引 如果你没有定义一个主键,则innodb定位到第一个唯一索引,且改索引的所有列值均为非空,就将其当做聚集索引 ...
- setsockopt用法详解
最近做的一个程序用到了IOCP通信模型,里面用到了setsockopt对套接字进行设置,看源代码的时候最setsockopt函数很不理解,看了msdn以后还是不太明白这个函数的用法,于是就到网上找了一 ...
- Invoker(小DP)
题意:http://acm.hdu.edu.cn/showproblem.php?pid=6739 尽量让他们连起来. 思路: 直接dp,其中一个状态是以什么结尾. #define IOS ios_b ...