背景:
說到定位問題,當然是選用瀏覽器定位。但是瀏覽器定位不是那么好用,加上國行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中;
配置后就可以正常獲取位置信息了;
先這樣吧,后期再完善!坑多的有點吃不消,還望堅持!