背景:
说到定位问题,当然是选用浏览器定位。但是浏览器定位不是那么好用,加上国行Android手机“阉割”了谷歌GMS服务包,导致HTML5的geolocation无法使用wifi和基站定位服务;
解决方法:
既然谷歌的服务被禁止了,那就换一个厂家呗,我国国内的好几家地图厂商;目前Dcloud集成的地图厂家有百度和高德;那就用这两个即可;
步骤如下:
1、Dcloud提供了两个可以继承的地图sdk,分别是百度地图和高德地图。以高德为例

2、高德提供了针对安卓和ios的单独的两个appkey,我们需要在高德开发者中心生成这个两个key,以安卓为例;
进入个人控制台—>应用管理—>我的应用—>创建新应用

创建完成后添加key

填写基本信息,SHA1安全码可以选择通过andriod studio生成也可以选择先随便填写;
通过生成的码就不用反过来重新填写了;

创建完成后把生成安卓key填入到hbuilder项目中的高德sdk安卓appkey配置中;
然后配置应用的基本信息 注:应用名称跟高德后台配置的名称一定要一致

配置完成后,进行打包即可;
测试代码如下:
(function($, doc) {
$.init();
$.plusReady(function() {
plus.geolocation.getCurrentPosition(geoInf, function(e) {
alert("获取定位位置信息失败:" + e.message);
}, {
geocode: true,
provider: 'amap'
});
function geoInf(position) {
alert(JSON.stringify(position));
}
});
}(mui, document));
打包成功后,安装app;安装app后出现错误提醒;

红色标注的是你自己的安全码SHA1,蓝色的是packName;
核实后填写到高德刚才配置的key中;
配置后就可以正常获取位置信息了;
先这样吧,后期再完善!坑多的有点吃不消,还望坚持!
浙公网安备 33010602011771号