参考自:
ionic 是一个强大的HTML5应用程序开发框架(HTML5 Hybrid Mobile App Framework),可以帮助您使用Web技术,比如HTML、CSS和Javascript构建接近原生体验的移动应用程序。
ionic特点:
ionic1与ionic2的区别
ionic2借助Angular2的革命性改进,与1.x版本相比具有以下优势:
更快的性能:Angular2比Angular1快5到10倍
ionic g page newPage
,就会生成以下文件,并且文件中已经生成了基本的代码-new-page
--new-page.ts
--new-page.html
--new-page.scss
Ionic开发是依赖于Nodejs环境的,所以在开发之前我们需要安装好Nodejs。下载安装:http://nodejs.org/
安装完成之后打开终端,输入命令node -v
和npm -v
验证是否安装成功,如果返回版本号则说明成功。
在终端命令行中执行:
npm install -g cordova ionic
这是使用npm包管理器安装cordova和ionic,-g的意思是全局安装,全局安装后在终端中任何目录下都可以使用cordova和ionic的命令。
注意:不指定版本的话,默认是安装最新版本,而最新版本可能打包的时候有问题,推荐制定一个不是最新的版本,如 sudo cnpm install –g [email protected] 。我就是最新版本,然后在add ios时一直卡在cordova fetch那里,换一个低版本后,就可以添加ios平台了。
Ionic官网提供了三个项目模板blank、tabs和sideMenu,这里创建一个blank(空) 的ionic项目。
ionic start myIonic blank
如果因为npm packages安装导致创建失败的话,可以尝试如下步骤来解决:
npm install -g cnpm
ionic start myIonic --skip-npm
如果要设置ionic2项目的版本执行如下命令:
ionic start myIonic --v2 --skip-npm
cnpm install --save
创建项目完毕后你到开发目录下查看会发现多了一个名为myIonic的文件夹,这个文件夹就是Ionic项目的所在目录了。
目录下有以下文件:
hooks // 在编译cordova时自定义的脚本命令,方便整合到我们的编译系统和版本控制系统中
plugins //cordova插件的目录
scss //scss文件,发布时编译这个目录下的文件输出到www的css目录中
www //我们的开发目录,页面、样式、脚本和图片都放在这个目录下
--css
--img
--js
--lib
--index.html
bower.json //bower配置文件
config.xml //Ionic的配置文件,可以配置app的id,名称、描述起始页和其他配置
gulpfile.js //gulp构建工具的执行文件,在这个文件中创建任务实现编译scss,css、js优化等
ionic.project //Ionic的项目文件可以配置Ionic命令中livereload的监控文件
package.json //npm配置文件
在ionic项目目录下,打开终端执行
ionic serve
执行完毕后Ionic会自动帮我们打开我们的默认浏览器并跳转到我们的应用页面,浏览器打开页面时,Ionic已经给我们开启了livereload模式,开启之后我们编辑www下的文件后,保存时Ionic会通过websocket通知浏览器刷新页面,我们就不用每次修改完毕手动刷新页面了,又极大的提高了我们的工作效率。
开启livereload后Ionic会默认监听www下面的文件,如果需要自定义的话请编辑ionic.project的watchPatterns来设置需要监听的范围。
Ionic把一些常用到的插件用angularjs服务做了一层封装:http://ngcordova.com/。
我们只需要在项目中安装ngCordova插件就可以像使用angularjs的服务一样在我们的项目中调用了,我们先安装ngCordova:
npm install ngCordova --save
安装完毕之后再www/index.html中引用
<script type="text/javascript" src="lib/ngCordova/dist/ng-cordova.js">script>
<script type="text/javascript" src="cordova.js">script>
ng-cordova.js需要在cordova.js引用之前
并在app.js中添加依赖注入关系
angular.module('starter', ['ionic', 'ngCordova'])