cordova官方提供的插件
cordova plugin add cordova-plugin-geolocation
不支持安卓定位,支持ios定位。android
參考項目ios
- 注意在你沒有得到百度提供的密鑰以前不要去安裝百度地圖插件,由於在你輸入安裝命令行的時候,須要輸入密鑰參數,若是不輸入就沒法安裝,若是亂輸入,最後調用插件的時候就不會成功,成功也是不穩定的。
使用百度方案,須要獲取百度提供的密鑰,才能定位。
密鑰申請,需先建立應用
有兩個問題須要解決:git
在你打包的apk後,必需要對apk進行簽名操做,若是apk未通過簽名,是沒法在安卓設備上進行安裝的。這樣設計的我據說是未了維護開發者的權益,因此才加上這個步驟的。github
開發板SHA1:
在cordova的打包中,最後生成的debug.apk會被自動簽名,而要想知道debug.pak的簽名信息,默認會在C:\Users\.android
關鍵實在.android
文件夾裏(本人的目錄位置C:\Users\.android
)的debug.keystore
文件裏。
要想查看裏面的信息須要打開cmd切換到debug.keystore
文件的目錄裏:
而後輸入:keytool -list -v -keystore debug.keystore
這是須要輸入密鑰,默認的密鑰是:android算法
發佈版SHA1:
發佈版的SHA1獲取,
1.首先須要咱們先建立一個簽名文件,打開cmd直接輸入:npm
keytool -genkey -v -keystore D:\CordovaTest\MyTest\platforms\android\mytest-release.keystore -alias mytest -keyalg RSA -validity 20000 keytool -genkey -v -keystore [存放簽名文件的路徑(本身決定)]\[簽名文件名] -alias [別名] -keyalg RSA -validity [證書有效的天數]
D:\CordovaTest\MyApp\mytest.keystore
:表示生成的證書及其存放路徑,若是直接寫文件名則默認生成在用戶主目錄下;
-alias mytest
:表示證書的別名是mytest;
-keyalg RSA
:表示採用的RSA算法;
-validity 20000
:表示證書的有效期是20000天。bash
2.確認後,接下來須要輸入設置密鑰,輸入過程密碼是不可見的,本身記住就好。接下來就是一波填寫了,看我的狀況,後面的都是可選項。後面會有一項讓你確認以上信息是否正確,填n會返回到密鑰設置那一步,從新填寫。填y確認到下一步,再回車確認。app
這時候你就會發現你的存放簽名文件的目錄多了一個mytest-release.keystore
文件,證實你已經成功的建立了一個簽名文件。
查看裏面的信息同debug的同樣keytool -list -v -keystore mytest-release.keystore
,只是改個名字。輸入剛剛本身設置的密鑰ui
如今你已經有了一個本身的簽名,接下來你須要將你的簽名綁定到你的apk裏面,咱們綁定的簽名固然是要綁定到發佈版上,默認cordova打包好的release是不自動綁定簽名的。廢話很少說,記下來綁定簽名。插件
3.綁定簽名
首先打包出release版的apk,在cordova的項目目錄輸入:cordova build android --release
,打包好後在MyTest\platforms\android\app\build\outputs\apk\release
目錄下查看有一個app-release-unsigned.apk
文件
將你以前建立的簽名文件mytest-release.keystore
放到MyTest\platforms\android\app\build\outputs\apk\release
目錄下
檢查apk是否已經簽名:
jarsigner -verify app-release-unsigned.apk
app-release-unsigned.apk: 須要檢測的apk名
將建立好的簽名文件,綁定到apk上:
jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore mytest-release.keystore -storepass abcdefg -signedjar ling.apk app-release-unsigned.apk mytest jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore [你的keystore] -storepass [keystore的密碼] -signedjar [簽名後的apk] [未簽名的apk] [keystore的別名]
cordova create hello com.example.hello HelloWorld
cordova create hello
默認的包名會是io.cordova.hellocordova
,若是你不肯定,能夠在D:\CordovaTest\MyApp\platforms\android\app\build\intermediates\manifests\full\debug
目錄下的AndroidManifest.xml
文件進行查看。D:\CordovaTest\MyApp\platforms\android\app\build\intermediates\manifests\full\release
目錄下查看AndroidManifest.xml
文件查看package的值。至此咱們的開發板SHA1,發佈版SHA1,和包名已經搞定了。
官方代碼: cordova plugin add cordova-plugin-baidumaplocation --variable ANDROID_KEY="<API_KEY_ANDROID>" --variable IOS_KEY="<API_KEY_IOS>" 註釋: cordova plugin add cordova-plugin-baidumaplocation --variable ANDROID_KEY="安卓密鑰值" --variable IOS_KEY="ios密鑰值" 本人實例: cordova plugin add cordova-plugin-baidumaplocation --variable ANDROID_KEY="lrICUgCWeCCafgoGO7tGohrP6kOtE3BaT6fc" --variable IOS_KEY="lrICUgCWeCCafgoGO7tGohrP6kOtE3BaT6fc"
注意:IOS_KEY
這一項你就算沒有也要填上,否則沒法安裝。
baidumap_location.getCurrentPosition(function (result) { console.log(JSON.stringify(result, null, 4)); }, function (error) { });
移除插件:cordova plugin rm cordova-plugin-baidumaplocation
高德地圖獲取密鑰的過程基本和百度的同樣,這裏就省略了。
安裝
cordova plugin add https://github.com/DaiHuaXieHuaKai/GaoDeLocation.git --variable API_KEY="12594614f5cdf06ceffd3c5493d25e5b"
使用方法:
// 進行定位 GaoDe.getCurrentPosition(successCallback, failedCallback);