在使用cordova开发移动app的时候会遇到定位的问题,cordova提供了自己的cordova-plugin-geolocation插件,这个插件在ios上面定位不会出现问题,但是在安卓手机上会出现定位位置偏移或者定位失败的问题。
因此在网上找了一些相关的资料,大部分对于安卓定位的解决方案都是采用百度地图的安卓SDK进行定位。详细的可以参照下面两个个插件
1、https://github.com/DoubleSpout/phonegap_baidu_sdk_location
(详细地址http://snoopyxdy.blog.163.com/blog/static/601174402014420872345/)
2、https://github.com/mrwutong/cordova-qdc-baidu-location
本人亲身实验这两个插件,但是都没有成功。第一个插件安装上后在手机上打包即报错,第二个插件在安卓5.0上会出现闪退现象,具体原因未知。后来在百度地图开发者平台上下载Android定位SDK开发包
解压包结构如下图
最后安装https://github.com/mrwutong/cordova-qdc-baidu-location这个插件,找到插件
用百度下载下来的开发包替换android目录下的所有文件。
然后修改插件目录下的plugin.xml里面相应代码为以下代码
<source-file src="src/android/BaiduLocation.java" target-dir="src/com/qdc/plugins/baidu" /><source-file src="libs/android/armeabi/liblocSDK6a.so" target-dir="libs/armeabi" /><source-file src="libs/android/armeabi-v7a/liblocSDK6a.so" target-dir="libs/armeabi-v7a" /><source-file src="libs/android/BaiduLBS_Android.jar" target-dir="libs" />
这样就可以把百度5.3的SDK换成6.3的SDK。就不会出现闪退现象。