iOS_Cordova開發(fā)教程(一)

公司準(zhǔn)備開發(fā)一套APP,嗯,一個(gè)系列的APP,除了一個(gè)頁(yè)面跟業(yè)務(wù)相關(guān)的不同,其他界面基本一致,因此,產(chǎn)品萌生一個(gè)想法,關(guān)于webAPP的想法。對(duì),苦逼的程序員負(fù)責(zé)調(diào)研可行性以及整體的方案流程。目的為了達(dá)到除了業(yè)務(wù)數(shù)據(jù)頁(yè)面用web,其他頁(yè)面全是原生APP(Native)的作用。其中,關(guān)于業(yè)務(wù)的web頁(yè)面需要調(diào)用原生的相機(jī),相冊(cè),地理位置,掃描二維碼等一系列功能,這就涉及到j(luò)s與原生交互的問(wèn)題了。

起初iOS端提出的方案是直接用WebView或者用WKWebView嵌套就好了,因?yàn)閼?yīng)要求,只要web端發(fā)送一個(gè)假的請(qǐng)求,然后手機(jī)端斷掉截住這個(gè)請(qǐng)求也是可以實(shí)現(xiàn)交互的,不過(guò)安卓因?yàn)槠淦脚_(tái)多樣性和特殊性這個(gè)就不兼容而且可行性交差,這是安卓給的說(shuō)法,可是不管怎么說(shuō),反正最后確定雙方都用Cordova實(shí)現(xiàn)該功能,然后,開始了iOS端關(guān)于Cordova的學(xué)習(xí)之路,話不多說(shuō),來(lái)點(diǎn)干貨。

1 Cordova簡(jiǎn)介

1.1 Cordova是什么

Cordova前身是phonegap,而PhoneGap是Nitobi軟件公司2008年推出的一個(gè)框架,旨在彌補(bǔ)web和iOS之間的不足,使得web和iPhone SDK之間的交互更容易。后來(lái)又加入了Android SDK 和BlackBerry SDK,再然后又陸續(xù)加入了更多的平臺(tái)。但是在2011年,Nitobi公司被Adobe收購(gòu),PhoneGap也被提交到Apache Incubator。由于Adobe現(xiàn)在擁有PhoneGap商標(biāo),PhoneGap v2.0版產(chǎn)品就更名為Apache Cordova。

據(jù)說(shuō)Cordova是Nitobi團(tuán)隊(duì)當(dāng)時(shí)坐落的街道名稱,用此名來(lái)紀(jì)念Nitobi團(tuán)隊(duì)的貢獻(xiàn)。Apache Cordova是從PhoneGap中抽出的核心代碼,是驅(qū)動(dòng)PhoneGap的核心引擎。

1.2 Cordova的工程結(jié)構(gòu)

有下圖可以看出,關(guān)于Cordova的工程結(jié)構(gòu)以及與Native API之間的關(guān)系:

Cordova的工程結(jié)構(gòu)圖

由上圖可以看出,其實(shí)Cordova的使用分為上面幾個(gè)框架結(jié)構(gòu),在Native與web之間交互。

2 Cordova安裝

2.1 準(zhǔn)備工作

因?yàn)楸救藦氖耰OS工作,所以只闡述在Mac端安裝Cordova的步驟及解釋,至于windows下安裝Cordova的步驟,這里不再贅述。

(1)首先,你要有一臺(tái)Mac電腦,如果沒(méi)有,那么,你就把這篇文章關(guān)了吧,看了也沒(méi)什么用。

(2)然后你需要安裝xcode,當(dāng)然,你要開發(fā),這一點(diǎn)必不可少。

(3)你需要申請(qǐng)證書,然后在xcode中設(shè)置配置文件開發(fā)者賬號(hào)...(可后面再做)。

(4)好了,你可以開始安裝Cordova了。

2.1 安裝Node.js

要安裝Cordova,需要先安裝Node.js在Node.js官網(wǎng),上下載并安裝,下載好以后,一步一步點(diǎn)擊下去就好,可以的老鐵,沒(méi)毛病。如果你實(shí)在不會(huì),可以參考文章Mac下安裝Node.js

nodejs官網(wǎng)

2.2 安裝git

git一般不用安裝,osx和linux都自帶git,可以在命令行輸入git --version檢查一下。如果沒(méi)有g(shù)it,需要到git官網(wǎng)下載安裝一個(gè)git客戶端。

git官網(wǎng)圖片

2.3 使用node.js的依賴包管理工具npm來(lái)進(jìn)行cordova安裝

接下來(lái),在終端輸入命令:

 sudo npm install -g cordova

過(guò)程可能稍微有點(diǎn)枯燥和漫長(zhǎng),請(qǐng)耐心等待,其實(shí)需要輸入的安裝命令只有npm install -g cordova,之所以輸入sodu,是因?yàn)橛悬c(diǎn)Mac直接輸入前一句代碼是安裝不起的,安裝效果如下圖:

Cordova安裝

因?yàn)楸救耸堑诙伟惭b,可能圖示稍微有點(diǎn)不同,不過(guò)基本如此,無(wú)傷大雅。

3 創(chuàng)建你的第一個(gè)Cordova工程

3.1 新建項(xiàng)目

繼續(xù),打開終端,cmd切換目錄到工作目錄下,輸入以下命令,同樣,可能需要點(diǎn)時(shí)間來(lái)完成。

 cordova create Demo com.YanSY.demo.hello HelloWorld 


Parameter(參數(shù)) Description(描述) Notes(目錄)
Demo(參數(shù)是必填) 將為你的項(xiàng)目生成一個(gè)Demo目錄 www子目錄是應(yīng)用程序的主頁(yè),以及各種資源(css,js,img),遵循共同的web開發(fā)文件命名規(guī)范。這些資源將存儲(chǔ)在設(shè)備上的本地文件系統(tǒng),而不是遠(yuǎn)程服務(wù)。config.xml文件包含重要的需要生成和分發(fā)應(yīng)用程序的元數(shù)據(jù)。
com.YanSY.demo.hello (參數(shù)可選) App ID 如果不填寫這個(gè)參數(shù),第三個(gè)參數(shù)就要省略,默認(rèn)值是 io.cordova.hellocordova,但建議你填寫一個(gè)適當(dāng)?shù)闹怠?/td>
HelloWorld(參數(shù)可選) 應(yīng)用程序的項(xiàng)目名 這個(gè)參數(shù)的默認(rèn)值是 HelloCordova,但建議你填寫一個(gè)適當(dāng)?shù)闹怠?/td>

3.2 添加平臺(tái)支持

所有后續(xù)命令在項(xiàng)目的目錄中進(jìn)行,可在該項(xiàng)目任何子目錄中,cmd切換到項(xiàng)目目錄下:

  cd Demo

在構(gòu)建項(xiàng)目之前,你需要指定一組目標(biāo)平臺(tái)。你能夠運(yùn)行這些命令取決于您的機(jī)器是否支持每一個(gè)SDK,合理是否已安裝SDK。在MAC上運(yùn)行命令:

  cordova platform add ios


創(chuàng)建項(xiàng)目終端命令示意圖

如果需要查看Cordova支持平臺(tái)以及已經(jīng)添加的平臺(tái),終端輸入命令:

  cordova platforms ls

3.3 添加插件

根據(jù)項(xiàng)目具體功能需要,可添加插件以簡(jiǎn)單方便調(diào)用原生接口,如需添加插件,可以去Cordova插件庫(kù) 搜索需要的插件:

> cordova plugin add com.phonegap.plugins.barcodescanner

> cordova plugin add org.apache.cordova.file-transfer

> cordova plugin ls

并非所有的插件都是全平臺(tái)支持的,有些可能只支持安卓,也有的可能同時(shí)支持安卓和iOS,所以在多平臺(tái)開發(fā)時(shí),請(qǐng)慎重選擇插件。個(gè)人建議,可自定義插件類,可參考官網(wǎng)Cordova自定義插件

3.4 迭代項(xiàng)目

在工程目錄下運(yùn)行下面的命令來(lái)構(gòu)建項(xiàng)目:

  cordova build

或者,指定生成iOS平臺(tái)代碼項(xiàng)目:

  cordova platform add iosiOS_Cordova開發(fā)教程(一

4 運(yùn)行項(xiàng)目

4.1 打開工程

步驟走完第三章,那么,一個(gè)簡(jiǎn)單的Cordova項(xiàng)目就已經(jīng)搭建完成了,現(xiàn)在,我們運(yùn)行下我們工程。打開目錄下

  /Users/YanSY/Desktop/Demo/platforms/ios/HelloWorld.xcworkspace 

為了避免引起混淆,建議移除掉下圖中兩個(gè)文件/文件夾引用:

建議移除的文件示意圖

移除點(diǎn)擊delete后示意圖

4.2 Events Cordova生命周期事件

生命周期函數(shù) 釋義
deviceready 當(dāng)Cordova加載完成會(huì)觸發(fā)
pause 當(dāng)應(yīng)用程序進(jìn)入到后臺(tái)時(shí)觸發(fā)
resume 應(yīng)用程序從后臺(tái)進(jìn)入到前臺(tái)會(huì)觸發(fā)

4.3 Plugin APIs 自定義Plugin方法

附錄:

第二篇文章iOS_Cordova開發(fā)教程(二)介紹了如何一步一步將Cordova集成到已有的工程項(xiàng)目中,如果有需要的可以看看。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,071評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,360評(píng)論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,895評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,123評(píng)論 0 286
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,643評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,559評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,742評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評(píng)論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,981評(píng)論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評(píng)論 1 280
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,354評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,707評(píng)論 2 370

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