cordova 使用指南

Cordova 使用指南

一芭析、 Cordova 版本

圖片.png

二、 參考資料
http://cordova.apache.org/docs/en/latest/guide/cli/index.html
三排截、 安裝以及運(yùn)行Cordova

  1. 安裝node.js
    安裝node.js確保 輸入node –v 后可以顯示node.js 的版本信息。如果你輸入的node.js 確提示“不是內(nèi)部或外部命令”,很有可能是是你的環(huán)境變量配置錯(cuò)誤毙石。
    (1) 安裝正確安裝將會(huì)看到的結(jié)果问裕。注意:不是在node.js command prompt 中輸入查看版本的命令逮壁,而是在CMD 中。
圖片.png

(2) 另附 node.js 的環(huán)境變量截圖粮宛。注意:我是在將node.js 安裝在D盤的窥淆。第一張圖是我的環(huán)境變量卖宠,第二張圖是我安裝nodeJs 的目錄和文件。

圖片.png
圖片.png
  1. 安裝npm
    當(dāng)安裝好node.js后NPM 也應(yīng)該被安裝好了忧饭。由于新版的nodejs已經(jīng)集成了npm扛伍,所以之前npm也一并安裝好了。同樣可以通過輸入 "npm -v" 來測(cè)試是否成功安裝词裤。命令如下刺洒,出現(xiàn)版本提示表示安裝成功:
圖片.png
  1. 配置 ANDROID_SDK_HOME 環(huán)境變量
    配置 ANDROID_SDK_HOME 環(huán)境變量,變量值為你的SDK吼砂。
圖片.png

另附:SDK 下載地址 http://sdk.android-studio.org/ 由于國(guó)內(nèi)會(huì)出現(xiàn)無法更新的SDK 的問題逆航,順便給你一個(gè)鏡像網(wǎng)站和使用方法。

圖片.png
  1. 安裝cordova
    在你的CMD 中輸入 npm install –g cordova 然后cordova 會(huì)自動(dòng)安裝的渔肩。由于國(guó)內(nèi)環(huán)境因俐,這個(gè)安裝過程可能會(huì)很漫長(zhǎng),很有可能出現(xiàn)網(wǎng)絡(luò)中斷的現(xiàn)象周偎,重復(fù)輸入命令重新安裝就好了抹剩。
圖片.png

安裝成功后輸入一下版本輸入一下查看cordova 版本信息的命令。出現(xiàn)下面的界面就代表你安裝成功了蓉坎。

圖片.png
  1. 讓我們創(chuàng)建一個(gè)cordova 應(yīng)用程序吧澳眷。
  2. 創(chuàng)建cordova 項(xiàng)目
    在合適的文件夾內(nèi)輸入:cordova create YANG com.example.YANG YY
    YANG::::::: 這個(gè)是我們創(chuàng)建的文件夾的名字
    com.example.YANG:::::::::::::::::::: 這個(gè)是我們創(chuàng)建的apk 的包名
    YY:::::::::::::::::::::::: 這個(gè)是 應(yīng)用的名字
    以上三條都屬于我個(gè)人的理解,若錯(cuò)了蛉艾,別見怪境蔼。
    附圖: 沒有報(bào)錯(cuò),創(chuàng)建成功了伺通。
圖片.png
  1. 為cordova 添加平臺(tái)
    Cordova 可不僅僅創(chuàng)建android \Ios 的應(yīng)用程序箍土,還可以創(chuàng)建windows\Linux 等平臺(tái)的應(yīng)用程序哦。
  2. 添加一個(gè)android 平臺(tái)罐监。
    (1) 進(jìn)入到我們剛剛創(chuàng)建的cordoav 文件中 命令:cd YANG
    (2) 添加平臺(tái) 命令: cordova platform add android –save
    若出現(xiàn)下列信息證明吴藻,這一步操作正確啦。
圖片.png

99当ぁ!J缚铡航罗!但是對(duì)于第一次安裝使用cordova 的人來說,這一步可不是那么容易走的通的屁药。
你可能遇到的第一個(gè)問題是可能會(huì)下載很多的包文件粥血,在你第一次運(yùn)行android平臺(tái)的時(shí)候,cordova 會(huì)向服務(wù)器請(qǐng)求很多的數(shù)據(jù)包,由于國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境這個(gè)過程可能會(huì)的非常非常的慢复亏,總之你就安心等著他下載好趾娃,安裝好就好了。要有耐心缔御。這個(gè)錯(cuò)誤會(huì)報(bào) 請(qǐng)求網(wǎng)絡(luò)超時(shí)的錯(cuò)誤抬闷。
第二個(gè)問題是你的SDK 缺少一個(gè)必要文件。這個(gè)時(shí)候你用
cordova requirements 這個(gè)命令查看一下耕突。下面的信息是我的笤成,我的都是安裝好的了,要是缺少哪些東西控制臺(tái)會(huì)給出提示的眷茁,到時(shí)候去你的ANDROID SDK 那邊兒更新一下需要的東西就行了疹启。

圖片.png
  1. 運(yùn)行打包以及運(yùn)行程序。
    添加好平臺(tái)之后蔼卡,我們就可以打包以及運(yùn)行我們的程序啦。
  2. Cordova 打包APK
  3. 命令:cordova build android
圖片.png

在打包之前我們首先看一下我們創(chuàng)建的cordova 項(xiàng)目的目錄:

上圖為cordova 項(xiàng)目的文件目錄挣磨,主要幾個(gè)文件:
a) www :::::::: 這個(gè)文件夾主要存放的是html 頁(yè)面雇逞,注意index.html 引用的cordova.js 這個(gè)文件很重要,不要丟失茁裙。
b) platforms ::::::: 這個(gè)文件夾 主要放的平臺(tái)的信息的塘砸,當(dāng)我們打完包后,apk 就在platforms\android\build\outputs\apk 這個(gè)目錄下晤锥。
c) plugins ::::::::::: 這個(gè)文件夾 主要放插件的 例如打開攝像機(jī)掉蔬,獲取電話簿等等。
d) config,xml :::::: 這個(gè)主要配置安卓一些系統(tǒng)信息的矾瘾。

  1. 打包
圖片.png
圖片.png

看到上圖的信息說明打包成功女轿。去目錄里去找你的apk 吧。然后安裝在手機(jī)上試試壕翩。

  1. 運(yùn)行
    當(dāng)手機(jī)連接到電腦上的時(shí)候蛉迹,我們可以直接 run 命令,將apk 安裝到你的手機(jī)上放妈。 命令: cordova run android
    注意:你的手機(jī)要打開開發(fā)者模式北救,并且在cmd 輸入adb devices 可以看到你的設(shè)備。
圖片.png

現(xiàn)在開始運(yùn)行吧芜抒。

圖片.png

現(xiàn)在可以在你的手機(jī)查看你的應(yīng)用程序啦珍策,雖然只有一個(gè)頁(yè)面,但是畢竟成功了呀宅倒。

  1. Cordova 插件使用
  2. 添加一個(gè)插件
  3. 添加插件 命令:cordova plugin add cordova-plugin-camera
圖片.png
  1. 查看已安裝的插件 命令:cordova plugin ls
圖片.png
  1. 使用插件
    注意:老版本和新版的的cordova 在這個(gè)地方是有區(qū)別的叭林妗!老版本是手動(dòng)的添加插件的,但是新版的cordova 已經(jīng)幫我們做了這一塊了模聋,所以說老版本的程序用新版本的cordova 重新進(jìn)行打包肩民,會(huì)出現(xiàn)插件失靈的情況。
    我們來使用一個(gè)插件功能吧链方,打開攝像機(jī)持痰。
<!DOCTYPEhtml>

<html>

<head>

    <title>Capture Photo</title>

    <script type="text/javascript"charset="utf-8" src="cordova.js"></script>

    <script type="text/javascript"charset="utf-8">

        var pictureSource;   // picture source   

        var destinationType; // sets the formatof returned value      

        // Wait for device API libraries toload    //     

       document.addEventListener("deviceready", onDeviceReady,false);

        // device APIs are available    //     

        function onDeviceReady() {

            pictureSource =navigator.camera.PictureSourceType;

            destinationType =navigator.camera.DestinationType;

        }

        // Called when a photo is successfullyretrieved    //     

        function onPhotoDataSuccess(imageData){

            // Uncomment to view thebase64-encoded image data      //   

            console.log(imageData);

            // Get image handle      //       

            var smallImage =document.getElementById('smallImage');

            // Unhide image elements      //      

            smallImage.style.display = 'block';

            // Show the captured photo      // The in-line CSS rules are used toresize the image      //       

            smallImage.src ="data:image/jpeg;base64," + imageData;

        }

        // Called when a photo is successfullyretrieved    //     

        function onPhotoURISuccess(imageURI) {

            // Uncomment to view the image fileURI      //   

            console.log(imageURI);

            // Get image handle      //      

            var largeImage =document.getElementById('largeImage');

            // Unhide image elements      //     

            largeImage.style.display = 'block';

            // Show the captured photo      // The in-line CSS rules are used toresize the image      //      

            largeImage.src = imageURI;

        }

        // A button will call this function    //     

        function capturePhoto() {

            // Take picture using device cameraand retrieve image as base64-encoded string       

           navigator.camera.getPicture(onPhotoDataSuccess, onFail, {

                quality: 50,

                destinationType:destinationType.DATA_URL

            });

        }

        // A button will call thisfunction    //     

        function capturePhotoEdit() {

            // Take picture using devicecamera, allow edit, and retrieve image as base64-encoded string      

           navigator.camera.getPicture(onPhotoDataSuccess, onFail, {

                quality: 20,

                allowEdit: true,

                destinationType:destinationType.DATA_URL

            });

        }

        // A button will call thisfunction    //      

        function getPhoto(source) {

            // Retrieve image file locationfrom specified source    

           navigator.camera.getPicture(onPhotoURISuccess, onFail, {

                quality: 50,

                destinationType:destinationType.FILE_URI,

                sourceType: source

            });

        }

        // Called if something badhappens.    //     

        function onFail(message) {

            alert('Failed because: ' +message);

        }

    </script>

</head>

<body>

<buttononclick="capturePhoto();">Capture Photo</button>

<br>

<buttononclick="capturePhotoEdit();">Capture EditablePhoto</button>

<br>

<buttononclick="getPhoto(pictureSource.PHOTOLIBRARY);">From PhotoLibrary</button>

<br>

<buttononclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From PhotoAlbum</button>

<br>

<imgstyle="display:none;width:60px;height:60px;"id="smallImage" src=""/>

<imgstyle="display:none;" id="largeImage" src=""/>

 

</body>

</html>  

將以上的html 代碼,替換你的index.html 代碼祟蚀。然后重新run/build 一下工窍,試試新的apk 是不是可以調(diào)用你的相機(jī)了呢。

  1. Debug 程序(自行整理的)
  2. 首先打開你的app前酿。
  3. 運(yùn)行如下命令
圖片.png
現(xiàn)在進(jìn)入了我手機(jī)的shell 窗口患雏,命令窗口。
  1. 運(yùn)行 logcat –c 這個(gè)是清除之前的log信息罢维。
  2. 運(yùn)行 logcat *:D 這是查看當(dāng)前系統(tǒng)所有的日志信息淹仑,信息量很大。
  3. 運(yùn)行 logcat *: D | grep www.example.YANG 這個(gè)這是查 指定app 的日志肺孵。Gerp 后面跟的你app 的包名匀借。
8.常用命令
一.插件相關(guān)常用命令
1,查看所有已經(jīng)安裝的插件
1   cordova plugin ls

2平窘,安裝插件(以camera插件為例)
1   cordova plugin add cordova-plugin-camera


3吓肋,刪除插件(以camera插件為例)
1   cordova plugin rm cordova-plugin-camera

4,更新插件
1   cordova plugin update

二瑰艘,常用的Cordova插件
1是鬼,Console(調(diào)試控制臺(tái))
讓程序可以在控制臺(tái)中打印輸出日志。
1   cordova plugin add cordova-plugin-console

2紫新,Connection(網(wǎng)絡(luò)連接)
用來判斷網(wǎng)絡(luò)連接類型(2G均蜜、3G、4G芒率、Wifi兆龙、無連接等)
1   cordova plugin add cordova-plugin-network-information

3,Device(設(shè)備)
獲取一些設(shè)備信息敲董。
1   cordova plugin add cordova-plugin-device

4紫皇,Hardware Nofifications(硬件消息提醒)
讓設(shè)備蜂鳴或振動(dòng)。
1   cordova plugin add cordova-plugin-vibration

5腋寨,Visual Notification(可視化消息提醒)
不同于js的alert()聪铺、confirm()和prompt()方法是同步的。Cordova的alert()萄窜、confirm()和prompt()方法是異步的铃剔,并且對(duì)顯示內(nèi)容有更大的控制權(quán)限撒桨。
1   cordova plugin add cordova-plugin-dialogs

6,Battery(電池)
可以獲取電池狀態(tài)信息键兜。
1   cordova plugin add cordova-plugin-battery-status

7凤类,Accelerometer(加速計(jì))
讓應(yīng)用在三維空間(使用笛卡爾三維坐標(biāo)系統(tǒng))中決定設(shè)備方向。
1   cordova plugin add cordova-plugin-device-motion

8普气,Compass(指南針)
可以讓開發(fā)者讀取移動(dòng)設(shè)備的朝向谜疤。
1   cordova plugin add cordova-plugin-device-orientation

9,Geolocation(地理定位)
讓應(yīng)用判斷設(shè)備的物理位置现诀。
1   cordova plugin add cordova-plugin-geolocation

10夷磕,Camera(相機(jī))
用相機(jī)獲取圖像。
1   cordova plugin add cordova-plugin-camera

11仔沿,Media Capture (媒體捕獲)
與Camera API相比坐桩,不僅能獲取圖像,還可以錄視頻或者錄音封锉。
1   cordova plugin add cordova-plugin-media-capture

12绵跷,Globalization(全球化)
允許應(yīng)用查詢操作系統(tǒng)的當(dāng)前設(shè)置,判斷用戶使用的語言成福。
1   cordova plugin add cordova-plugin-globalization

13碾局,Contacts(聯(lián)系人)
讀取聯(lián)系人列表并在應(yīng)用中使用聯(lián)系人數(shù)據(jù),或使用應(yīng)用數(shù)據(jù)向聯(lián)系人列表中寫新的聯(lián)系人闷叉。
1   cordova plugin add cordova-plugin-contacts

14,Media(播放/記錄媒體文件)
讓應(yīng)用能記錄或播放媒體文件脊阴。用它可以在手機(jī)后臺(tái)播放音頻文件或玩桌面視頻游戲握侧。
1   cordova plugin add cordova-plugin-media

15,InAppBrowser(內(nèi)置瀏覽器)
允許在在單獨(dú)的窗口中加載網(wǎng)頁(yè)嘿期。例如要向應(yīng)用用戶展示其他網(wǎng)頁(yè)品擎。當(dāng)然可以很容易地在應(yīng)用中加載網(wǎng)頁(yè)內(nèi)容并管理,但有時(shí)候需要不同的用戶體驗(yàn)备徐,InAppBrowser加載網(wǎng)頁(yè)內(nèi)容萄传,應(yīng)用用戶可以更方便的直接返回到主應(yīng)用。
1   cordova plugin add cordova-plugin-inappbrowser

16蜜猾,Splashscreen(閃屏)
用來在Cordova應(yīng)用啟動(dòng)時(shí)顯示自定義的閃屏秀菱。
1   cordova plugin add cordova-plugin-splashscreen

17,exitApp(退出應(yīng)用)
讓 Android 或者 Windows Phone 8 上的APP關(guān)閉退出(iOS系統(tǒng)不支持)蹭睡。
1   cordova plugin add cordova-plugin-exitapp

18衍菱,barcodeScanner(條形碼/二維碼掃描)
不僅可以通過攝像頭識(shí)別二維碼/條形碼,還能生成二維碼肩豁。
1   cordova plugin add cordova-plugin-barcodescanner

19脊串,file(文件訪問操作類)
提供對(duì)設(shè)備上的文件進(jìn)行讀取和寫入的功能支持辫呻。
1   cordova plugin add cordova-plugin-file

20,fileTransfer(文件傳輸)
實(shí)現(xiàn)文件上傳琼锋、下載及共享等功能放闺。
1   cordova plugin add cordova-plugin-file-transfer

常用命令來自:http://www.hangge.com/blog/cache/detail_1158.html    ··
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市缕坎,隨后出現(xiàn)的幾起案子怖侦,更是在濱河造成了極大的恐慌,老刑警劉巖念赶,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件础钠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡叉谜,警方通過查閱死者的電腦和手機(jī)旗吁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來停局,“玉大人很钓,你說我怎么就攤上這事《裕” “怎么了码倦?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)锭碳。 經(jīng)常有香客問我袁稽,道長(zhǎng),這世上最難降的妖魔是什么擒抛? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任推汽,我火速辦了婚禮,結(jié)果婚禮上歧沪,老公的妹妹穿的比我還像新娘歹撒。我一直安慰自己,他們只是感情好诊胞,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布暖夭。 她就那樣靜靜地躺著,像睡著了一般撵孤。 火紅的嫁衣襯著肌膚如雪迈着。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天邪码,我揣著相機(jī)與錄音寥假,去河邊找鬼。 笑死霞扬,一個(gè)胖子當(dāng)著我的面吹牛糕韧,可吹牛的內(nèi)容都是我干的枫振。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼萤彩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼粪滤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起雀扶,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤杖小,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后愚墓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體予权,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年浪册,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扫腺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡村象,死狀恐怖笆环,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情厚者,我是刑警寧澤躁劣,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站库菲,受9級(jí)特大地震影響账忘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜熙宇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一鳖擒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奇颠,春花似錦败去、人聲如沸放航。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽广鳍。三九已至荆几,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赊时,已是汗流浹背吨铸。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祖秒,地道東北人诞吱。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓舟奠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親房维。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沼瘫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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