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://www.voidcn.com/article/p-tyqywdag-bro.html


提交成功之后,按照同样的方式创建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打开工程,运行之后,在控制台看到:


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

相关文章
相关标签/搜索