背景:

说到定位问题,当然是选用浏览器定位。但是浏览器定位不是那么好用,加上国行Android手机“阉割”了谷歌GMS服务包,导致HTML5的geolocation无法使用wifi和基站定位服务;

解决方法:

既然谷歌的服务被禁止了,那就换一个厂家呗,我国国内的好几家地图厂商;目前Dcloud集成的地图厂家有百度和高德;那就用这两个即可;

步骤如下:

1Dcloud提供了两个可以继承的地图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中;

 

配置后就可以正常获取位置信息了;

 

先这样吧,后期再完善!坑多的有点吃不消,还望坚持!

 

posted on 2019-01-25 11:13  iV5  阅读(1119)  评论(0)    收藏  举报