cordova使用cordova-plugin-baidumaplocation插件获取定位

1、首先在百度地图开放平台注册登录;


2、创建应用,现在选Android SDK,因为在cordova项目中添加插件的时候,使用的ANDROID_KEY用的Android SDK的key,而不是浏览器端的key,所以这里注意一下,同样的ios的也是,使用IOS SDK应用的key,这里以android为例,就不演示ios应用的创建过程了;




这里为了省去麻烦,勾选了所有的服务,实际上只需要android定位服务就可以了。

不会获取发布版SHA1以及开发版SHA1的同学可以看这里:

http://blog.csdn.net/mate_ge/article/details/78913372


提交成功之后,按照同样的方式创建IOS SDK,获取IOS_KEY,需要注意的是,我在添加插件的时候只给了android的key,然后插件安装失败,好像是android和ios的key都要才能安装上cordova插件。IOS SDK中的Bundle Identifier请参照页面上的提示获取,我这里从xcode中的general中查看,直接就是包名,也就是appid;

获取android key和ios key:




我这里不知道为什么通过命令死活装不上,就是一直卡在fetch的界面:

cordova plugin add cordova-plugin-baidumaplocation 
 --variable ANDROID_KEY="***" --variable IOS_KEY="***"


后来通过git的方式安装装上了:

cordova plugin add https://github.com/aruis/cordova-plugin-baidumaplocation 
 --variable ANDROID_KEY="***" --variable IOS_KEY="***" 


安装完之后,在js代码中获取定位:

let onDeviceReady = function () {
    initBaiduMap();
};

function initBaiduMap() {
    // 进行定位
    if ('baidumap_location' in window) {
        baidumap_location.getCurrentPosition(function (result) {
            console.log(result);
        }, function (error) {
            console.error(error);
        });
    } else {
        console.error('baidumap_location is undefined');
    }
}

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

执行cordova run android启动应用(真机调试,手机通过usb连接mac电脑,在终端执行adb devices出现记录,表明设备连接成功,测试设备为华为畅玩X7,android7.0),应用启动之后,打开chrome,在地址栏输入chrome://inspect,,点击inspect,然后打开熟悉的console控制台:



在控制台中看到如下信息,表明已经可以正常获取定位地址:


执行cordova build ios,然后使用xcode打开工程,运行之后,在控制台看到:


不知道是不是因为是模拟器的原因,获取的地址在美国,地址应该是虚拟的。



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
百度地图定位Cordova件,支持Android,IOS 可以在此地址查看example 基于百度地图Android版定位SDK(v7.1)以及百度地图IOS SDK (v3.2.1) 一,申请Android及IOS版密钥 申请密钥Android定位SDK 每一个AndroidManifest.xml 中的package属性 对应一个AK,不可混用 iOS SDK开发密钥 每一个Bundle Identifier 对应一个AK,不可混用 二,安装件```` cordova plugin add cordova-plugin-baidumaplocation --variable ANDROID_KEY="" --variable IOS_KEY="" //此处的API_KEY_XX来自于第一步,直接替换,也可以最后跟 --save 参数,将件信息保存到config.xml中 //如果只需要Android端或者IOS端,可以只填写一个相应的AK,但是都不填肯定不行 三,使用方法 // 进行定位 baidumap_location.getCurrentPosition(function (result) {     console.log(JSON.stringify(result, null, 4)); }, function (error) { }); 获得定位信息,返回JSON格式数据: {     "time": "2017-02-25 17:30:00",//获取时间     "latitude": 34.6666666,//纬度     "lontitude": 117.8888,//经度     "radius": 61.9999999,//半径     //--------Android 独享 begin     "locType": 161,//定位类型                                                 "locTypeDescription": "NetWork location successful!",//定位类型解释        "userIndoorState": 1,//是否室内                                          //--------Android 独享 end     //--------IOS 独享 begin     "title": "我的位置",//定位标注点标题信息     "subtitle": "我的位置",//定位标注点子标题信息     //--------IOS 独享 end } 具体字段内容请参照: Android版 BDLocation v7.1 IOS版 BMKUserLocation 如果Android版获取到的信息是: {     "locType": 505,     "locTypeDescription": "NetWork location failed because baidu location service check the key is unlegal, please check the key in AndroidManifest.xml !",     "latitude": 5e-324,     "lontitude": 5e-324,     "radius": 0,     "userIndoorState": -1,     "direction": -1 } 说明Key有问题,可以检查下生成的AndroidManifest.xml文件里面是否有如下信息                                                           如果没有,说明使用不当,尝试重新安装,如果有这些信息,说明Key与当前程序AndroidManifest.xml 中的package名不一致,请检查Key的申请信息是否正确 四,查看当前安装了哪些cordova plugin ls 五,删除本cordova plugin rm cordova-plugin-baidumaplocation 标签:cordova
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值