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);