美文网首页ionic开发ionic3.0iOS混合开发
ionic3 教程(一)安装和配置

ionic3 教程(一)安装和配置

作者: Snorlax丶 | 来源:发表于2017-05-10 10:42 被阅读64118次

链接:
ionic3 教程(一)安装和配置
ionic3 教程(二)登录页制作
ionic3 教程(三)设置页制作
ionic3 教程(四)安卓硬件返回键处理
ionic3 教程(五)基本的网络请求

学习本教程前你需要了解以下内容:

TypeScript的话至少需要了解基本语法,可以看看
TS 中文官方文档

对 Angular 不太熟悉的可以点这里:
Angular 4.0 架构详解
Angular 4.0 内置指令全攻略

什么是 ionic?他和 Cordova、Angular2 有什么联系?

ionic = Cordova + Angular + ionic CSS
Cordova 提供了使用 JavaScript 调用 Native 功能,ionic CSS 是一套 UI 框架,ionic 对 Angular 进行了封装。

ionic3

ionic 基于 AngularJS 开发。由于 AngularJS1.x 版本在性能上已经很难有较大提升,Google 推出了全新设计的 Angular 2,ionic 也对应着出了2。

ionic2 与一代相比有较大的变化,基于最新的 Angular 2 ,使用 TypeScript 进行开发,如果您没有接触过 AngularJS 或 Ionic1.x,完全不用担心,直接从 ionic2 开始学习即可。

ionic3 是 Angular4.0 推出之后的跟进版本,变化幅度不大。

安装和运行

如果没有安装过 Node.js,先去官网下载一下。

// 安装(失败的话 Mac 尝试使用 sudo,Windows 尝试管理员身份运行 cmd)
$ npm install -g cordova ionic
// 安装后可以验证一下 ionic cli 版本
$ ionic -version
3.5.0

// 创建应用
// cd 到要创建项目的目录,输入以下内容创建ionic项目
// ionic3Demo 是项目名,tabs是模板(默认是tabs,其他还有blank的单页等)
$ ionic start ionic3Demo tabs

// 安装依赖
// 会生成一个 node_modules 文件夹,并在里面安装 package.json 上写下的文件
$ cd ionic3Demo/
$ npm install

// 在浏览器中运行项目
$ ionic serve

有的朋友可能对 cli 不太熟悉,简单说两句。
-g 代表全局安装、install 可以简写为 i、-version 可以简写为 -v
剩下的还有 --save、--dev 等,想要了解更多可以参考官方文档
http://ionicframework.com/docs/cli/

如图:

ionic serve

在web上运行 iOS、Android、WindowsPhone 项目

把浏览器中的地址改为:
http://localhost:8100/ionic-lab
ionic serve lab

不喜欢使用命令行的朋友,可以试一试 ionic lab,他是桌面版的开发环境。不过我没有尝试过,感兴趣的可以下载看看。
下载地址:http://lab.ionic.io

ionic lab
// 如果需要在手机运行,则执行以下命令
// 添加iOS项目
$ ionic platform add ios
// 把src里的内容同步到ios项目中(src后面会讲到)
$ ionic cordova build ios
// 运行iOS项目,相当于在Xcode里面按Command+R
$ ionic cordova emulate ios

//安卓的话同理,把ios替换为android即可
$ ionic platform add android
$ ionic cordova build android
$ ionic cordova emulate android

成功后目录结构如下,platform 里面是你添加的 iOS 和 Android 项目。

目录结构

src 就是以后开发写代码主要的地方。每次写完要同步到手机项目中,需要使用

$ ionic cordova build ios
$ ionic platform add android

同步到 iOS 和 Android 平台里。

Tabs 分析

打开 app.component.ts 可以看到这句代码

rootPage:any = TabsPage;

这个相当于 iOS 的 rootViewControllerAndroid 的 MainActivity

回忆一下我们一开始选择的 Tabs 模板,所以这里生成的是 tabs。打开 src/pages/tabs/tabs.ts,可以看到这些代码:

import { Component } from '@angular/core';

import { AboutPage } from '../about/about';
import { ContactPage } from '../contact/contact';
import { HomePage } from '../home/home';

@Component({
  templateUrl: 'tabs.html'
})
export class TabsPage {

  tab1Root = HomePage;
  tab2Root = AboutPage;
  tab3Root = ContactPage;

  constructor() {

  }
}

这个 TabsPage,就代表了应用最下面的三个 TabBar。上面分别指出了他们的路径。

Ionic 3 的导航和 iOS 一样是一个栈,push 到新界面,pop 回旧界面。我们在构造函数中设置了 this.navCtrl 属性,我们可以调用 this.navCtrl.push() 方法,来导航到一个新的页面。

好了,这一节内容就到这里。

补充

最近有很多朋友私信问我,如何升级 ionic 版本和 ionic cli 版本,也搞不清楚这两个东西的区别和联系,这里统一进行解释。

ionic 版本是 package.json 中的 ionic-angular。

// 升级方法:
// 修改 ionic-angular 的版本号,并在项目目录下执行以下命令
npm install 

ionic cli 版本是一套 ionic 的命令行界面,用于执行各种命令行的命令。

// 升级方法:
// 在任意目录下,执行以下命令
npm install -g ionic@lastest

相关文章

网友评论

  • 琦益:为什么生产环境下的应用还是要通过网址去访问?还是我哪里没设置?望指教
  • 纵昂:ionic platform add ios,我在Mac上运行这个命令失败,显示
    The platform command has been renamed. To find out more, run:

    ionic cordova platform --help
    请问怎么回事,我还找不到platform这个文件
    纵昂:@Snorlax丶 谢谢,解决了
    Snorlax丶:ionic cordova platform add ios,你评论里的少一个 cordova
  • cd19f3b22333:你好 大神 我这边 tabs项目能在Google上显示了 但是执行 ionic cordova platform add android的时候 报
    (node:11144) UnhandledPromiseRejectionWarning: CordovaError: Failed to fetch platform cordova-android@~7.0.0
    Probably this is either a connection problem, or platform spec is incorrect.
    Check your connection and platform name/version/URL.
    Error: cmd: Command failed with exit code 1 Error output:
    npm ERR! SLB:184 is not a legal HTTP header value
    npm ERR! SLB:184 is not a legal HTTP header value
    这是啥情况啊 搞不懂 ,
    E:\workspace_ionic\myApp>ionic info

    cli packages: (C:\Users\Administrator\AppData\Roaming\npm\node_modules)

    @IONIC/cli-utils : 1.19.2
    ionic (Ionic CLI) : 3.20.0

    global packages:

    cordova (Cordova CLI) : 8.0.0

    local packages:

    @IONIC/app-scripts : 3.1.9
    Cordova Platforms : none
    Ionic Framework : ionic-angular 3.9.2

    System:

    Android SDK Tools : 23.0.0
    Node : v8.11.1
    npm : 6.0.0
    OS : Windows 10

    Environment Variables:

    ANDROID_HOME : G:\AndroidTools\android-sdks

    Misc:

    backend : pro
    这是我的基本信息
  • cce464c1de96:我用的是ionic3,,输入cordova run android在安卓手机上测试,感觉不会用,怎么没反应的,又没有报错。然后把项目导入到Android studio上面调试,打包上面也不会。可以告诉我什么原因吗
  • 英杞:按你的方法:ionic platform add android@6.1.2 后报错CordovaError: Failed to fetch platform cordova-android@6.1.2
    Probably this is either a connection problem, or platform spec is incorrect.
    Check your connection and platform name/version/URL.
    Error: cmd: Command failed with exit code 4294963221 Error output:

    这个是什么问题啊
  • mike8625:大佬您好,我试了一下navCtrl.push(一个页面) 但是地址栏没变化 一刷新就回到首页了 怎么才能让地址栏也跟着变啊 比如一开始是xxx.com 我进入login 那就是 xxx.com/login 或者 xxx.com/#login
  • 5e58b144e14f:我按照你的方法来做的 在执行 ionic start ionic3Demo tabs这条命令的时候出现了
    Running command -failed! 出现了错误这是怎么回事?
    5e58b144e14f:@OoYoO 没有啊。妈的一个环境搭建了3天了 还没有解决
    Snorlax丶:翻墙试试
    OoYoO:我也碰到这问题,请问解决了么?
  • a4463164d181:按照您的教程都做了 问您一下 登陆的时候 用户和密码 可以存在本地文件里吗 然后登陆时去取用户和密码 用户不存在或者密码不正确就报错
    Snorlax丶:@未完待續_8878 直接用 localstorage
  • 不在三重门:谢谢你!写得很详细.
    Snorlax丶:@不在三重门 :smirk:
  • b75d57265665:我运行cordova platform add android的时候 报这个错,检查了下网络,是没有问题的。下面说超出最大限制 我没搞懂是哪个限制,求解
    Using cordova-fetch for cordova-android@~6.3.0
    Error: Failed to fetch platform cordova-android@~6.3.0
    Probably this is either a connection problem, or platform spec is incorrect.
    Check your connection and platform name/version/URL.
    Error: cmd: Command failed with exit code 1 Error output:
    npm ERR! Maximum call stack size exceeded

    npm ERR! A complete log of this run can be found in:
    npm ERR! C:\Users\admin\AppData\Roaming\npm-cache\_logs\2017-12-02T09_34_09_811Z-deb
    ug.log
    甘蔗不削皮:cordova platform add android@6.1.2 你试试这个?
  • 寿司Cc:$ ionic start ionic3Demo tabs 创建项目的时候,能不能更改创建项目的地址,我每次创建项目都在C盘下面
    616efa063d42:@寿司Cc 厉害我也是 刚从java学的这个 有问题可以请教一下么
    寿司Cc:@devilx 谢谢哈,我是Java开发的,领导要求学,刚刚写完一个增删改查的小Demo,有空一起交流交流
    Snorlax丶:@寿司Cc 可以,你先使用 cd 命令进入到其他目录下即可。左边的 C:\\ 换成别的就算成功了
  • 0d3e3136978c:我新建一个tab项目之后ionic serve出来页面了但是调试的时候报错不知道该怎么解决整了很久了
    1、Cordova is not available 出现了这个警告
    2、livereload.js?snipver=1:74 WebSocket connection to 'ws://localhost:35729/livereload' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED还有好多这种错误
    :sob:
    0d3e3136978c:我已经莫名其妙的就解决了
  • jkCodic:大神有没有好的ionic3学习路径推荐,本人想用ionic3开发一款智能家居遥控的客户端,主要功能包括语音识别,蓝牙连接等
  • AirPython:两个问题。
    第一个问题:ionic cordova build android 报错
    [ERROR] An error occurred while running cordova build android (exit code 1):


    ANDROID_HOME=C:\Users\dell\AppData\Local\Android\Sdk
    JAVA_HOME=C:\Program Files\Java\jdk1.8.0_31
    Error: Could not find an installed version of Gradle either in Android Studio,
    or on your system to install the gradle wrapper. Please include gradle
    in your path, or install Android Studio

    第二个问题:ionic cordova platform add android,生成的android项目不是以TypeSCript的形式生成的项目

    Snorlax丶:@星安果 那就 rm 了再 add。实现方式就是加载你的网页,网页用什么技术写没关系
    AirPython:@devilx 1.我可以在As中加载项目并运行起来
    2.但是里面还是ionic1.x 实现的方式(Js),不是angular4+ionic3+typescript的方式
    Snorlax丶:1.你安卓环境没配好,看看这句话 Please include gradle in your path, or install Android Studio
    2.就是普通安卓项目加载一个webview
  • chy_fe45:页面 push 后 好像是没有页脚的底部导航的,怎么弄才有底部导航的?
  • 青墨一隅:博主写的很不错,适合新手,正好我们公司要用,更新android studio项目时应该将add改成update的。
  • 09328d19873a:楼主大神,为啥按照你说的做了一下尝试,运行之后,网页一片空白,登录页不见了,ionic我的版本是3.9.2
    14e4dc09e0e8:@devilx 楼主,我在windows10上,ionic cordova build ios报错没安装xcodebuild, 我电脑安装了 appuploader 应该就不需要xcodebuild吧
    421ad736768c:特意登陆来膜拜大佬
    Snorlax丶:前两天不还 3.9.0 吗?这又出啥大 bug 了连更两次直接 3.9.2 了:joy:。我最近一直用的 3.5.0,他的官方文档也只更新到 3.6.0。你再检查下,也许有些步骤变了,这个版本应该不至于运行不了
  • 浅色流光:大神,请问ionic3如何跨页面传参,另外路由模块是怎样设置的,能写个demo吗,求帮助:persevere:
    616efa063d42:解决了么 大神 我想参考参考
    Snorlax丶:有时间尽量更
  • pastFirst:ionic serve后,cmd是不是就不能再使用了,这样我调试好像不是很方便,每次改完代码都只能ionic serve吗
    ionicsp:ctrl+c cmd就可以重新用了。ionic serve --lab运行之后 在编译器command+s保存 可以直接查看改动效果。
    Snorlax丶:再新建一个 cmd 窗口。vs code 也可以打开 cmd
  • 漂泊猫:同步到 iOS 和 Android 平台里上面的代码第二句不对吧,有点误导
    Snorlax丶:感谢你的评论,我这里描述可能不准确。
    详细的信息请参考一下官方文档的 CLI 大全:
    http://ionicframework.com/docs/cli/

    按照上面的说明 build 的意思应该是,
    Build web assets and prepare your app for any platform targets
  • 8164dced3bb9:ionic2能不能start ionic3的项目呀,只能向下兼容吗?
    Snorlax丶:@周末_a6f1 ionic 2 就没有 --v3 这个指令。就像你用 xp 去装一个最低版本为 win7 的程序一样,不好用才是正常的
    8164dced3bb9:@devilx 但是我用ionic start myProject tabs --v3的时候,默认给我下的ionic1的项目,而选择start --v2的时候才会给我下载ionic2。所以觉得很奇怪,ionc2可以兼容start 前两个版本,但是不能start ionic3。
    Snorlax丶::smirk: 如果项目里用到了只有 ionic3 才有的特性,不就毁了
  • 堤岸小跑:一年前用的ionic1 写了好几个私活, 现在都3了 。。准备重拾起来了 。问下,ionic 3的性能是不是比1 号好很多
    张德率:我第一个项目ionic2,期间感受各种便捷之余也是各种挠头,个人感觉ionic3应该比ionic1更加便捷,性能也更好
    Snorlax丶:ionic 用的都是 Angular 嘛。Angular1 已经被抛弃了,从 Angular2 开始是一个重写的新项目。按照谷歌的说法,是性能有很大进步,优化了不少
  • d85cb7968272:C:\Users\baiyi\DEmo>cordova platform add android
    Using cordova-fetch for cordova-android@~6.2.2
    Error: Failed to fetch platform cordova-android@~6.2.2
    Probably this is either a connection problem, or platform spec is incorrect.
    Check your connection and platform name/version/URL.
    Error: cmd: Command failed with exit code ENOENT
    platform 安装不上,,什么鬼,,
    e164535dead6:有些时候需要 翻墙 有的时候 不需要 搞不懂
    d85cb7968272: @devilx 嗯,我试下
    Snorlax丶:不是 cordova platform add android
    是 ionic cordova platform add android

    把 platform 里面的东西删掉,再试一试。也有可能是网络原因
  • Bury丶冬天:请问一下安装cordova报这个错误是什么原因
    E:\>npm install -g cordova
    npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
    npm ERR! code EINTEGRITY
    npm ERR! sha1-Jw4Gtnsq6UvP7mWS7TnrQjA9GG8= integrity checksum failed when using sha1: wanted sha1-Jw4Gtnsq6UvP7mWS7TnrQjA9GG8= but got sha1-pZQZvb685dOz3Sl1xetS7KpflqU=. (379931 bytes)

    npm ERR! A complete log of this run can be found in:
    npm ERR! C:\Users\Administrator\AppData\Roaming\npm-cache\_logs\2017-08-04T02_50_46_704Z-debug.log
    Bury丶冬天:@devilx Windows电脑也可以sudo吗?
    Bury丶冬天:@devilx 我Windows电脑
    Snorlax丶:先试试加上 sudo,应该会让你输入一下电脑密码
    sudo npm install -g cordova
  • TerryD:我有问题额,ionic cordova platform add ios 输入这个命令后控制台打印出“cordova platform add ios --save” 后就一直是Running command:fearful:
    c0491f6a6fbc::flushed: 同样的问题……请问您解决了吗
    TerryD:@devilx run了差不多2个小时了,强行终止,之后没的build,emulate命令可以正常run起来,也是服了:cry:
    Snorlax丶::sweat: 等等看,你这都没有报错。执行的时候他会从网上下载东西的,估计网不好

本文标题:ionic3 教程(一)安装和配置

本文链接:https://www.haomeiwen.com/subject/cagbtxtx.html