之前有個(gè)做ffmpeg的大神。由于公司開(kāi)發(fā)app的過(guò)程中需要有音視頻播放(后期會(huì)有直播)這一塊,老總是一位5,60歲的超級(jí)大佬,不用網(wǎng)上的第三方云服務(wù)(百度云,七牛云...)播放音視頻.無(wú)奈自己去研究ffmpeg這一塊。由于在ffmpeg這一塊”略懂“,在群里就碰到上面說(shuō)的ffmpeg大神。推薦我先了解下Cordova插件,后期自己自定義插件。然后我就有幸接觸這一塊。本著多學(xué)一些技多不壓身的態(tài)度去看看學(xué)學(xué)。
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的核心引擎。
提供了一組設(shè)備相關(guān)的API,通過(guò)這組API,移動(dòng)應(yīng)用能夠以JavaScript訪問(wèn)原生的設(shè)備功能,如攝像頭、麥克風(fēng)等。Cordova還提供了一組統(tǒng)一的JavaScript類庫(kù),以及為這些類庫(kù)所用的設(shè)備相關(guān)的原生后臺(tái)代碼。Cordova支持如下移動(dòng)操作系統(tǒng):iOS, Android,ubuntu phone os, Blackberry, Windows Phone, Palm WebOS, Bada 和 Symbian。
什么是Cordova插件?
插件就是一些附加代碼用來(lái)提供原生組件的JavaScript接口,他允許你的App可以使用原生設(shè)備的能力,超越了純粹的Web App。
Cordova工程結(jié)構(gòu)
從下面這幅圖可以看出Cordova工程的結(jié)構(gòu),以及與Native API 之間的關(guān)系。

由上圖可以看出,其實(shí)Cordova的使用分為上面幾個(gè)框架結(jié)構(gòu),在Native與web之間交互。
Cordova的安裝
安裝cordova命令行工具,貼出官網(wǎng)的步驟:(可以去官網(wǎng)看看)
$ npm install -g cordova
$ cordova create MyApp
$ cd MyApp
$ cordova platform add ios
$ cordova run ios
官網(wǎng)就是官網(wǎng)的,對(duì)于小白來(lái)說(shuō)還是看不懂。
下面貼出自己的實(shí)踐過(guò)程:
1.下載Node.js
我下載的是最新版本8.1.0

下載后在終端:sudo npm install -g cordova


2.sudo cordova create myDemo com.ztt.myDemo.hello HelloWorld
(下面的2個(gè)圖片是沒(méi)有加sudo權(quán)限的cordova create myDemo com.ztt.myDemo.hello HelloWorld,直接提示我
localhost:~ hqtech$ cordova/usr/local/lib/node_modules/cordova/node_modules/configstore/index.js:53?
throw err;
^
Error: EACCES: permission denied, open'/Users/hqtech/.config/configstore/update-notifier-cordova.json'
You don't have access to this file.
不能訪問(wèn)這個(gè)文件,因?yàn)闆](méi)權(quán)限,解決的辦法:
A.直接在每個(gè)命令前+sudo
B.切換到su權(quán)限下,以后的命令就不要+sudo了)


A.直接在每個(gè)命令前+sudo

B.切換到su權(quán)限下,以后的命令就不要+sudo了

3.cd myDemo

4.cordova platform add ios(此處的ios都是小寫的)

5.sudo cordova build


到這里cordova的創(chuàng)建算是告一段落
打開(kāi)工程



cordova安裝的坑(勿踩)
1.The file “HelloWorld.xcworkspace” could not be unlocked.

選中工程文件夾點(diǎn)右鍵,在 “顯示簡(jiǎn)介"——>"共享與權(quán)限"——>"-+"號(hào)。 添加本用戶(就是你登錄的那個(gè)賬號(hào)),授予讀寫權(quán)限,并點(diǎn)擊下方的設(shè)置符號(hào)選擇"應(yīng)用到包含的項(xiàng)目",操作如下圖:

2.Error: Path already exists and is not empty: /Users/zhaotong/Desktop/cordova/Demo

原因是在cordova的目錄下已經(jīng)存在一個(gè)名為Demo 的文件夾
3.Error:Unexpeced token H in JSON at position 0

解決:創(chuàng)建的命令檢查下
對(duì)的:sudo cordova create myDemo com zit.mydemo.hello HelloWorld
輸入密碼時(shí):是英文的輸入法(犯了低級(jí)?)
4.就是權(quán)限問(wèn)題,每次命令時(shí)我的都要+sudo
配置后的demo工程地址:https://github.com/mrzhao12/cordovaDemo
總的來(lái)說(shuō)cordova的第一次接觸坑還是很多了,至于以后的cordova自定義插件,還是慢慢學(xué)吧,阿彌陀佛