1,Apache Cordova 環境搭建
參考:http://www.tuicool.com/articles/rimQjyU
Cordova是Node.js的一款第三方依賴包,并托管到 https://www.npmjs.com/中。通過npm下載下傳即可:
$ npm install -g cordova
但是考慮到國内偉大的防火牆工程可能無法下載下傳從http://www.npmjs.org/下載下傳Cordova。幸運的是,國内有好幾個鏡像站點可以供我們使用,更新速度比較快的有淘寶鏡像。具體下載下傳方法如下:
(1)通過config指令:(臨時指定鏡像源)
$ npm config set registry https://registry.npm.taobao.org
$ npm install -g cordova
2.指令行指定:(臨時指定鏡像源)
$ npm --registry https://registry.npm.taobao.org info underscore
3.編輯 ~/.npmrc,并加入如下内容:(永久指定資料源):
$ registry = https://registry.npm.taobao.org
國内鏡像使用可參考: 電腦換源 npm 國内鏡像 cnpm
下載下傳Cordova後,通過以下指令可檢視目前的Cordova版本:
$ cordova -v
更新Cordova的方法如下:
2,建立并在Android studio中使用項目
使用cmd 控制台
指令示例:
cordova create myApp com.myCompany.myApp myApp
cd myApp
cordova plugin add cordova-plugin-camera --save // 添加插件可以多個
如需要使用定位,可以安裝百度定位插件
cordova plugin add https://github.com/mrwutong/cordova-qdc-baidu-location.git --variable API_KEY="Your key"
注意:該百度定位插件使用的百度sdk比較老,需要自己去百度下載下傳最新的api,并更新相關的lib庫。
百度定位插件使用方法參考:
https://github.com/mrwutong/cordova-qdc-baidu-location
如下連結是對該插件做了微量調整将資料傳回改為了json
https://github.com/liangzhenghui/cordova-qdc-baidu-location
在用到的js中調用即可得到位置資訊。
// 進行定位
baidu_location.getCurrentPosition(successCallback, failedCallback);
比如:
baidu_location.getCurrentPosition(function(location) {
if (location) {
alert("location" + location);
console.log('invoke baidu after data');
console.log(location);
} else {
console.log('baidu no data');
}
}, function() {
console.log('baidu error');}
);
// 添加Android平台
cordova platform add android --save
至此cordova工程就建立完成。
3,用Android studio 導入工程 (誰讓我已經習慣了它,打包調試都靠它)
參照官網的步驟:
官網介紹位址:http://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html
直接copy官網的内容,就不翻譯了很好了解。
To open a Cordova for Android project in Android Studio:
- Launch Android Studio.
- Select Import Project (Eclipse ADT, Gradle, etc).
- Select the Android platform directory in your project (
).<your-project>/platforms/android
- For the
question you can simply answer Yes.Gradle Sync
Once it finishes importing, you should be able to build and run the app directly from Android Studio.
需要注意的問題
1,導入Android studio後由于cordova 建立的工程預設用了最新的gradle版本,如果你的Android studio版本與之不一緻。要麼更新或者把版本号改為和你Android studio保持一緻。否則運作會報錯。
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
}
我的是2.1.3
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3'
}
2,修改了JS代碼後需要clean工程在重新編譯,否則代碼不生效。