本课中山我们在旅程继续之前需要的一些准备工作。我们当然是要生成应用,我们当然也要设置好所有组件和需要用到的Cordova插件。
在开始创建新应用之前的首要工作是确定你是否是最新的Ionic和Cordova版本,如果你最近没有做过的话,那么在继续之前运行一下以下命令:
npm install -g ionic cordova
或者
sudo npm install -g ionic cordova
如果你在安装Ionic或者生成新项目的时候遇到任何问题,请先确定一下你安装了最新版本的Node。安装完成之后,如果你要重新安装一遍的话,那么请先运行以下命令:
npm uninstall -g ionic npm cache clean
生成一个新应用
我们将使用空白开始模板(blank starter template)也就是生成一个空的Ionic项目。它会生成一个内置的页面叫做home,也就是我们的主页,下一课里面用于持有检查列表。
> 运行如下命令生成一个新项目
ionic start quicklists blank --v2
> 通过如下命令将项目目录作为当前目录
cd quicklists
这样,你的新项目就生成了 -- 你就可以在你喜欢的编辑器里面打开这个项目了。运行如下命令可以预览你生成的应用:
ionic serve
现在你应该可以看到以下画面:
创建需要的组件
这个应该需要用到总共3个页面组件。我们有HomePage用来展示所有检查列表的列表,一个IntroPage用来展示介绍手册,一个ChecklistPage用来展示指定检查列表的列表项。我们已经有了Home页面,所以我们只需要创建其他的两个就可以了。
> 运行如下命令生成介绍页面:
ionic g page Intro
> 运行如下命令生成列表详情页面:
ionic g page Checklist
创建需要的服务
我们创建一个数据服务。他将用于操作保存检查列表数据到存储和从存储中获取数据。
> 运行如下命令生成数据提供者:
ionic g provider Data
创建数据模型
我们将要给我们的检查列表创建数据模型,以允许我们更简单的创建和更新数据。不幸的是,没有可以用来生成数据模型的命令,我们得手动创建。
> 在src文件夹内创建一个的文件夹名为models
> 在models文件夹内新建一个文件名为checklist-model.ts
在App Module里面添加 页面 & 服务
为了能够在项目里面可以使用这些页面和服务,我们需要将它们添加到app.module.ts文件里。所有我们自己创建的页面都需要添加到declarations数组和entryComponents数组里,所有我们创建的数据提供者都需要添加到providers数组,其他自定义组件或者管道(pipe)只需要添加到declarations数组即可。我们的数据模型只是一个简单的类,我们需要在任何地方使用,所以不用在模组里面设置。
> 修改src/app/app.module.ts到以下:
import { NgModule } from '@angular/core';
import { IonicApp, IonicModule } from 'ionic-angular';
import { MyApp } from './app.component';
import { Storage } from '@ionic/storage';
import { HomePage } from '../pages/home/home';
import { IntroPage } from '../pages/intro/intro';
import { ChecklistPage } from '../pages/checklist/checklist';
import { Data } from '../providers/data';
@NgModule({
declarations: [
MyApp,
HomePage,
IntroPage,
ChecklistPage
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
HomePage,
IntroPage,
ChecklistPage
],
providers: [Storage, Data]
})
export class AppModule {}
注意,我们除了自己创建的Data提供者之外,我们还加入了一个Storage。Storage是Ionic提供的,可以通过它保存和获取数据 -- 我们后续会用到。
添加需要的平台
在给指定平台制作应用之前,你需要将它们添加到你的项目。
> 运行以下命令添加iOS平台:
ionic platform add ios
> 运行以下命令添加Android平台:
ionic platform add android
添加需要的Cordova插件
这个应用将会用到不同的Cordova插件。记住,Cordova插件只能在真实设备上运行。我将在添加他们的时候解释。
> 运行以下命令添加SQLite插件:
ionic plugin add cordova-sqlite-storage
这个插件让你可以访问本地存储SQLite数据库。我们在此应用中添加他的原因是Ionic本地存储服务可以使用插件提供的稳定输出存储。
> 运行以下命令添加Status Bar插件:
ionic plugin add cordova-plugin-statusbar
我们给所有项目添加此插件用来在应用中控制状态栏(设备屏幕顶部的状态条,包括时间,电池信息等等)。
> 运行以下命令添加Splash Screen插件:
ionic plugin add cordova-plugin-splashscreen
此插件允许我们控制闪屏(打开应用的时候的全屏画面)。
> 运行以下命令添加Keyboard插件:
ionic plugin add ionic-plugin-keyboard
这个插件允许我们控制软键盘。
> 运行以下命令添加Whitelist插件:
ionic plugin add cordova-plugin-whitelist
所有应用会用到这个插件,他定义了应用里可以加载什么样的资源。没有他的话,你尝试加载的资源都会不成功。
添加了这个插件后,你也需要到index.html中定一个一个“Content Security Policy”。我们将添加一个非常宽松的策略实际上允许我们加载任何资源。基于你的应用,你可以提供一个更严格的策略,但是对于开发而言开放性策略就可以了。
> 修改 src/index.html文件,添加一下meta标签:
<meta http-equiv="Content-Security-Policy" content="font-src 'self' data:;
img-src * data:; default-src gap://ready file://* *; script-src 'self'
'unsafe-inline' 'unsafe-eval' * ; style-src 'self' 'unsafe-inline' *">
> 运行以下命令添加Crosswalk插件:
ionic plugin add cordova-plugin-crosswalk-webview
这个另一个每个应用都要添加的插件,但是你也可以先不添加。添加了这个插件后,在你编译Android的时候将会使用“Crosswalk”。Android有很多问题,特别是老设备,因为有太多不同的团建版本,不同的版本有不同的浏览器(记住,鉴于我们是制作HTML5应用,他实际上就是一个搭载的浏览器用来运行我们的应用)。Crosswalk做的是将一个现代的浏览器打包到应用中,这样一来应用无论是运行在什么设备上,都会使用相同的浏览器来运行,并且Crosswalk浏览器可以很好改善执行效率。
唯一的不足之处就是你的应用尺寸明显的变大了很多。总体上,我觉得这很值得,我也建议你使用他,如果你接受不了的话,也可以不用。更多关于Crosswalk Project的信息,请参考网站:https://crosswalk-project.org/
设置图片
制作此应用的时候,会用到一些图片。你下载的包里面已经包含了这些图片,但是你需要去生成的项目里面设置好他们。
> 将下载包 src/assets文件夹下面的images文件夹复制到应用里的 src/assets下面
总结
就这样!我们设置好了,准备好继续前几,现在我们开始进入到有趣的部分了。