[Ionic 2從入門到精通] 7.2 準(zhǔn)備工作

本課是在旅程繼續(xù)進(jìn)行之前的一些準(zhǔn)備工作产禾。我們要生成應(yīng)用潦闲,設(shè)置所有組件和需要用到的Cordova插件倡缠。完成本課之后我們應(yīng)該有一個(gè)萬事俱備的項(xiàng)目骨架哨免,可以接著進(jìn)行編碼工作。
開始新項(xiàng)目的第一準(zhǔn)則是確保使用的是最新版的Ionic和Cordova昙沦,如果最近沒有更新過的話可以運(yùn)行如下命令:

npm install -g ionic cordova

或者

sudo npm install -g ionic cordova

如果在安裝Ionic或者生產(chǎn)新項(xiàng)目的時(shí)候遇到任何問題的話琢唾,檢查下是否安裝了最新版的Node。安裝完之后盾饮,再次安裝ionic之前請(qǐng)運(yùn)行:

npm uninstall -g ionic npm cache clean

生成新應(yīng)用

本應(yīng)用將使用空白初始模板采桃,跟名字說的一樣,就是個(gè)空的Ionic項(xiàng)目丘损。但是會(huì)有一個(gè)內(nèi)置的頁面名為home普办,我們下節(jié)課中將用作列表顯示頁。
> 運(yùn)行如下命令生成新項(xiàng)目:

ionic start camperchat blank --v2

> 運(yùn)行如下命令將新生成的項(xiàng)目作為當(dāng)前目錄:

cd camperchat

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

ionic serve

看起來是這樣的:

1.1.2.jpg

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

這個(gè)應(yīng)用會(huì)有幾個(gè)頁面泌豆,我們需要用到登錄頁,主頁吏饿,關(guān)于頁踪危。主頁已經(jīng)自動(dòng)生成,我們只需要?jiǎng)?chuàng)建登錄頁和關(guān)于頁就可以了猪落。
> 運(yùn)行如下命令生成 Login 頁面:

ionic g page Login

> 運(yùn)行如下命令生成 About 頁面:

ionic g page About

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

跟標(biāo)簽頁一樣贞远,我們同時(shí)也需要去創(chuàng)建一些服務(wù)。我們將創(chuàng)建一個(gè)數(shù)據(jù)服務(wù)來保存和獲取信息數(shù)據(jù)笨忌,以及一些從Facebook API獲取的數(shù)據(jù)蓝仲。
> 運(yùn)行如下命令生成 Data 提供者:

ionic g provider Data

將頁面和服務(wù)添加到App Module

為了能夠在項(xiàng)目里面可以使用這些頁面和服務(wù),我們需要將它們添加到app.module.ts文件里官疲。所有我們自己創(chuàng)建的頁面都需要添加到declarations數(shù)組和entryComponents數(shù)組里袱结,所有我們創(chuàng)建的數(shù)據(jù)提供者都需要添加到providers數(shù)組,其他自定義組件或者管道(pipe)只需要添加到declarations數(shù)組即可途凫。我們的數(shù)據(jù)模型只是一個(gè)簡單的類垢夹,我們需要在任何地方使用,所以不用在模組里面設(shè)置维费。
> 修改src/app/app.module.ts到以下:

import { NgModule } from '@angular/core';
import { IonicApp, IonicModule } from 'ionic-angular';
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { LoginPage } from '../pages/login/login';
import { AboutPage } from '../pages/about/about';
import { Data } from '../providers/data';

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

添加需要的平臺(tái)

在給指定平臺(tái)制作應(yīng)用之前果元,你需要將它們添加到你的項(xiàng)目促王。
> 運(yùn)行以下命令添加iOS平臺(tái):

ionic platform add ios

> 運(yùn)行以下命令添加Android平臺(tái):

ionic platform add android

安裝PouchDB

由于我們會(huì)在項(xiàng)目中用到PouchDB,所以我們需要先安裝他而晒。跟安裝Ionic Native一樣蝇狼,你只需要簡單的運(yùn)行如下命令就可以了:

npm install pouchdb --save

我們也要給PouchDB安裝“typings”這樣TypeScript編譯器就不會(huì)抱怨了(因?yàn)樗恢繮ouchDB是什么)。
> 運(yùn)行如下命令按鈕PouchDB的types

npm install @types/pouchdb --save --save-exact

添加需要的Cordova插件

這個(gè)應(yīng)用將會(huì)用到不同的Cordova插件倡怎。記住迅耘,Cordova插件只能在真實(shí)設(shè)備上運(yùn)行。我將在添加他們的時(shí)候解釋监署。
> 運(yùn)行以下命令添加SQLite插件:

ionic plugin add cordova-sqlite-storage

這個(gè)插件讓你可以訪問本地存儲(chǔ)SQLite數(shù)據(jù)庫豹障。我們?cè)诖藨?yīng)用中添加他的原因是Ionic本地存儲(chǔ)服務(wù)可以使用插件提供的穩(wěn)定輸出存儲(chǔ)。
> 運(yùn)行以下命令添加App Browser插件:

ionic plugin add cordova-plugin-inappbrowser

這個(gè)插件讓我們可以啟動(dòng)外部網(wǎng)站焦匈。我們會(huì)用這個(gè)插件來給Facebook插件使用血公。添加Facebook插件本事實(shí)際上需要做更多的工作而不是運(yùn)行一個(gè)命令就夠了的,所以我們稍后在做這個(gè)缓熟。
> 運(yùn)行以下命令添加Status Bar插件:

ionic plugin add cordova-plugin-statusbar

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

ionic plugin add cordova-plugin-splashscreen

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

ionic plugin add ionic-plugin-keyboard

這個(gè)插件允許我們控制軟鍵盤。
> 運(yùn)行以下命令添加Whitelist插件:

ionic plugin add cordova-plugin-whitelist

所有應(yīng)用會(huì)用到這個(gè)插件彰触,他定義了應(yīng)用里可以加載什么樣的資源梯投。沒有他的話,你嘗試加載的資源都會(huì)不成功况毅。
添加了這個(gè)插件后分蓖,你也需要到index.html中定一個(gè)一個(gè)“Content Security Policy”。我們將添加一個(gè)非常寬松的策略實(shí)際上允許我們加載任何資源尔许∶春祝基于你的應(yīng)用,你可以提供一個(gè)更嚴(yán)格的策略味廊,但是對(duì)于開發(fā)而言開放性策略就可以了蒸甜。
> 修改 src/index.html文件,添加一下meta標(biāo)簽:

<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' *">

> 運(yùn)行以下命令添加Crosswalk插件:

ionic plugin add cordova-plugin-crosswalk-webview

這個(gè)另一個(gè)每個(gè)應(yīng)用都要添加的插件余佛,但是你也可以先不添加柠新。添加了這個(gè)插件后,在你編譯Android的時(shí)候?qū)?huì)使用“Crosswalk”辉巡。Android有很多問題恨憎,特別是老設(shè)備,因?yàn)橛刑嗖煌膱F(tuán)建版本红氯,不同的版本有不同的瀏覽器(記住框咙,鑒于我們是制作HTML5應(yīng)用,他實(shí)際上就是一個(gè)搭載的瀏覽器用來運(yùn)行我們的應(yīng)用)痢甘。Crosswalk做的是將一個(gè)現(xiàn)代的瀏覽器打包到應(yīng)用中喇嘱,這樣一來應(yīng)用無論是運(yùn)行在什么設(shè)備上,都會(huì)使用相同的瀏覽器來運(yùn)行塞栅,并且Crosswalk瀏覽器可以很好改善執(zhí)行效率者铜。
唯一的不足之處就是你的應(yīng)用尺寸明顯的變大了很多》乓總體上作烟,我覺得這很值得,我也建議你使用他砾医,如果你接受不了的話拿撩,也可以不用。更多關(guān)于Crosswalk Project的信息如蚜,請(qǐng)參考網(wǎng)站:https://crosswalk-project.org/

設(shè)置圖片

制作此應(yīng)用的時(shí)候压恒,會(huì)用到一些圖片。你下載的包里面已經(jīng)包含了這些圖片错邦,但是你需要去生成的項(xiàng)目里面設(shè)置好他們探赫。
> 將下載包 src/assets文件夾下面的images文件夾復(fù)制到應(yīng)用里的 src/assets下面

總結(jié)

就這樣!我們?cè)O(shè)置好了撬呢,準(zhǔn)備好繼續(xù)前幾伦吠,現(xiàn)在我們開始進(jìn)入到有趣的部分了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末魂拦,一起剝皮案震驚了整個(gè)濱河市毛仪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芯勘,老刑警劉巖潭千,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異借尿,居然都是意外死亡刨晴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門路翻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狈癞,“玉大人,你說我怎么就攤上這事茂契〉埃” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵掉冶,是天一觀的道長真竖。 經(jīng)常有香客問我脐雪,道長,這世上最難降的妖魔是什么恢共? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任战秋,我火速辦了婚禮,結(jié)果婚禮上讨韭,老公的妹妹穿的比我還像新娘脂信。我一直安慰自己,他們只是感情好透硝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布狰闪。 她就那樣靜靜地躺著,像睡著了一般濒生。 火紅的嫁衣襯著肌膚如雪埋泵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天罪治,我揣著相機(jī)與錄音秋泄,去河邊找鬼。 笑死规阀,一個(gè)胖子當(dāng)著我的面吹牛恒序,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谁撼,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼歧胁,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了厉碟?” 一聲冷哼從身側(cè)響起喊巍,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎箍鼓,沒想到半個(gè)月后崭参,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡款咖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年何暮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铐殃。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡海洼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出富腊,到底是詐尸還是另有隱情坏逢,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站是整,受9級(jí)特大地震影響肖揣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜浮入,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一龙优、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舵盈,春花似錦、人聲如沸球化。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筒愚。三九已至赴蝇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間巢掺,已是汗流浹背句伶。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陆淀,地道東北人考余。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像轧苫,于是被迫代替她去往敵國和親楚堤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353