[Ionic 2從入門到精通] 5.2 準備工作

本課是在旅程繼續(xù)進行之前的一些準備工作知允。我們要生成應(yīng)用练湿,設(shè)置所有組件和需要用到的Cordova插件番枚。完成本課之后我們應(yīng)該有一個萬事俱備的項目骨架,可以接著進行編碼工作村砂。
開始新項目的第一準則是確保使用的是最新版的Ionic和Cordova烂斋,如果最近沒有更新過的話可以運行如下命令:

npm install -g ionic cordova

或者

sudo npm install -g ionic cordova

如果在安裝Ionic或者生產(chǎn)新項目的時候遇到任何問題的話,檢查下是否安裝了最新版的Node础废。安裝完之后汛骂,再次安裝ionic之前請運行:

npm uninstall -g ionic npm cache clean

生成新應(yīng)用

本應(yīng)用將使用空白初始模板,跟名字說的一樣色迂,就是個空的Ionic項目香缺。但是會有一個內(nèi)置的頁面名為home,我們下節(jié)課中將用作列表顯示頁歇僧。
> 運行如下命令生成新項目:

ionic start snapaday blank --v2

> 運行如下命令將新生成的項目作為當前目錄:

cd snapaday

現(xiàn)在可以在你中意的編輯器中打開這個項目了图张。通過以下命令可以預(yù)覽創(chuàng)建的應(yīng)用:

ionic serve

看起來是這樣的:

空白應(yīng)用

創(chuàng)建需要的組件

應(yīng)用的架構(gòu)很簡單锋拖,我們會有兩個頁面:主頁含有照片和一個展示頁。我們已經(jīng)有了一個home組件用作列表頁祸轮,所以我們只要創(chuàng)建一個Slideshow頁面就可以了兽埃。
> 運行如下命令生成 Slideshow 頁面:

ionic g page Slideshow

創(chuàng)建需求的服務(wù)

跟我們的兩個頁面一樣,我們需要創(chuàng)建一個數(shù)據(jù)服務(wù)來存儲和獲取照片适袜,由于我們在應(yīng)用中有很多警告信息柄错,所以我們也需要創(chuàng)建一個服務(wù)來更方便的處理他們。
> 運行如下命令生成 Data 提供者:

ionic g provider Data

> 運行如下命令生成 Alert 提供者:

ionic g provider SimpleAlert

我們還需要創(chuàng)建自定義的Pipe來講拍照日期轉(zhuǎn)換成更友好的內(nèi)容苦酱,例如‘5 天前’售貌。
> 運行如下命令生成 DaysAgo 管道:

ionic g pipe DaysAgo

創(chuàng)建數(shù)據(jù)模型

我們將為我們的照片創(chuàng)建一個數(shù)據(jù)模型用于更簡單的創(chuàng)建和更新他們。不幸的是疫萤,沒有現(xiàn)有命令用來生成颂跨,所以我們要手動創(chuàng)建。
> 在 src 文件夾內(nèi)創(chuàng)建一個新的文件夾名為models:
> 在 models 文件夾內(nèi)創(chuàng)建一個新的文件名為 photo-model.ts:

在App Module中添加頁面和服務(wù)

為了能夠在項目里面可以使用這些頁面和服務(wù)扯饶,我們需要將它們添加到app.module.ts文件里恒削。所有我們自己創(chuàng)建的頁面都需要添加到declarations數(shù)組和entryComponents數(shù)組里,所有我們創(chuàng)建的數(shù)據(jù)提供者都需要添加到providers數(shù)組尾序,其他自定義組件或者管道(pipe)只需要添加到declarations數(shù)組即可钓丰。我們的數(shù)據(jù)模型只是一個簡單的類,我們需要在任何地方使用每币,所以不用在模組里面設(shè)置携丁。
> 修改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 { DaysAgo } from '../pipes/days-ago';
import { SlideshowPage } from '../pages/slideshow/slideshow';
import { SimpleAlert } from '../providers/simple-alert';
import { Data } from '../providers/data';

@NgModule({
    declarations: [
        MyApp,
        HomePage,
        SlideshowPage,
        DaysAgo
    ],
    imports: [
        IonicModule.forRoot(MyApp)
    ],
    bootstrap: [IonicApp],
    entryComponents: [
        MyApp,
        HomePage,
        SlideshowPage
    ],
    providers: [Storage, Data, SimpleAlert]
})
export class AppModule {}

注意,我們除了自己創(chuàng)建的Data提供者之外脯爪,我們還加入了一個Storage则北。Storage是Ionic提供的,可以通過它保存和獲取數(shù)據(jù) -- 我們后續(xù)會用到痕慢。

添加需要的平臺

在給指定平臺制作應(yīng)用之前,你需要將它們添加到你的項目涌矢。
> 運行以下命令添加iOS平臺:

ionic platform add ios

> 運行以下命令添加Android平臺:

ionic platform add android

添加需要的Cordova插件

這個應(yīng)用將會用到不同的Cordova插件掖举。記住,Cordova插件只能在真實設(shè)備上運行娜庇。我將在添加他們的時候解釋塔次。
> 運行以下命令添加SQLite插件:

ionic plugin add cordova-sqlite-storage

這個插件讓你可以訪問本地存儲SQLite數(shù)據(jù)庫。我們在此應(yīng)用中添加他的原因是Ionic本地存儲服務(wù)可以使用插件提供的穩(wěn)定輸出存儲名秀。
> 運行以下命令添加本地通知插件:

ionic plugin add de.appplant.cordova.plugin.local-notification

這個插件允許我們?yōu)閼?yīng)用創(chuàng)建本地通知励负。和推送通知不一樣,本地通知是完全在用戶設(shè)備上處理的匕得,不需要外部服務(wù)继榆。
> 運行以下命令添加Camera插件:

ionic plugin add cordova-plugin-camera

這個插件給你訪問用戶相機和返回照片的能力巾表。提供相機訪問權(quán)限的同時,也允許你從用戶照片庫中獲取照片略吨。
> 運行以下命令添加File插件:

ionic plugin add cordova-plugin-file

File插件允許你和設(shè)備文件系統(tǒng)交互集币,我們將用來移動應(yīng)用來照的照片到其他地方。
> 運行以下命令添加Social Sharing插件:

ionic plugin add cordova-plugin-x-socialsharing

社交分享插件是一個通用插件翠忠,允許用戶分享到大量不同平臺(像是社交媒體鞠苟,郵件,SMS等等)或者是觸發(fā)特定平臺的分享秽之。
> 運行以下命令添加Status Bar插件:

ionic plugin add cordova-plugin-statusbar

我們給所有項目添加此插件用來在應(yīng)用中控制狀態(tài)欄(設(shè)備屏幕頂部的狀態(tài)條当娱,包括時間,電池信息等等)考榨。
> 運行以下命令添加Splash Screen插件:

ionic plugin add cordova-plugin-splashscreen

此插件允許我們控制閃屏(打開應(yīng)用的時候的全屏畫面)跨细。
> 運行以下命令添加Keyboard插件:

ionic plugin add ionic-plugin-keyboard

這個插件允許我們控制軟鍵盤。
> 運行以下命令添加Whitelist插件:

ionic plugin add cordova-plugin-whitelist

所有應(yīng)用會用到這個插件董虱,他定義了應(yīng)用里可以加載什么樣的資源扼鞋。沒有他的話,你嘗試加載的資源都會不成功愤诱。
添加了這個插件后云头,你也需要到index.html中定一個一個“Content Security Policy”。我們將添加一個非常寬松的策略實際上允許我們加載任何資源淫半±;保基于你的應(yīng)用,你可以提供一個更嚴格的策略科吭,但是對于開發(fā)而言開放性策略就可以了昏滴。
> 修改 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

這個另一個每個應(yīng)用都要添加的插件对人,但是你也可以先不添加谣殊。添加了這個插件后,在你編譯Android的時候?qū)褂谩癈rosswalk”牺弄。Android有很多問題姻几,特別是老設(shè)備,因為有太多不同的團建版本势告,不同的版本有不同的瀏覽器(記住蛇捌,鑒于我們是制作HTML5應(yīng)用,他實際上就是一個搭載的瀏覽器用來運行我們的應(yīng)用)咱台。Crosswalk做的是將一個現(xiàn)代的瀏覽器打包到應(yīng)用中络拌,這樣一來應(yīng)用無論是運行在什么設(shè)備上,都會使用相同的瀏覽器來運行回溺,并且Crosswalk瀏覽器可以很好改善執(zhí)行效率春贸。
唯一的不足之處就是你的應(yīng)用尺寸明顯的變大了很多混萝。總體上祥诽,我覺得這很值得,我也建議你使用他雄坪,如果你接受不了的話厘熟,也可以不用。更多關(guān)于Crosswalk Project的信息维哈,請參考網(wǎng)站:https://crosswalk-project.org/

設(shè)置圖片

制作此應(yīng)用的時候绳姨,會用到一些圖片。你下載的包里面已經(jīng)包含了這些圖片阔挠,但是你需要去生成的項目里面設(shè)置好他們飘庄。
> 將下載包 src/assets文件夾下面的images文件夾復(fù)制到應(yīng)用里的 src/assets下面

總結(jié)

就這樣!我們設(shè)置好了购撼,準備好繼續(xù)前幾跪削,現(xiàn)在我們開始進入到有趣的部分了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末迂求,一起剝皮案震驚了整個濱河市碾盐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌揩局,老刑警劉巖毫玖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異凌盯,居然都是意外死亡付枫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門驰怎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阐滩,“玉大人,你說我怎么就攤上這事县忌∫睹迹” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵芹枷,是天一觀的道長。 經(jīng)常有香客問我莲趣,道長鸳慈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任喧伞,我火速辦了婚禮走芋,結(jié)果婚禮上绩郎,老公的妹妹穿的比我還像新娘。我一直安慰自己翁逞,他們只是感情好肋杖,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著挖函,像睡著了一般状植。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怨喘,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天津畸,我揣著相機與錄音,去河邊找鬼必怜。 笑死肉拓,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的梳庆。 我是一名探鬼主播暖途,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼膏执!你這毒婦竟也來了驻售?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤胧后,失蹤者是張志新(化名)和其女友劉穎芋浮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壳快,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡纸巷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了眶痰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘤旨。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖竖伯,靈堂內(nèi)的尸體忽然破棺而出存哲,到底是詐尸還是另有隱情,我是刑警寧澤七婴,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布祟偷,位于F島的核電站,受9級特大地震影響打厘,放射性物質(zhì)發(fā)生泄漏修肠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一户盯、第九天 我趴在偏房一處隱蔽的房頂上張望嵌施。 院中可真熱鬧饲化,春花似錦、人聲如沸吃靠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弥姻。三九已至拣帽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間号杏,已是汗流浹背砾跃。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留娶桦,地道東北人扁藕。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓框全,卻偏偏與公主長得像察绷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子津辩,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容