uniapp安卓app打包后获取位置信息失败解决方法(含高德地图key详细申请流程)

这个也是我在做uniapp混合app时遇到的问题,也是困惑了几天,网上也有很大相关文章,但是有些地方有些不清晰,让新手很困惑。

问题原因

我在项目中碰到两个问题

  1. 如果只需要用定位功能获取到经纬度坐标的,可以不用在manifest.json --> App SDK配置中勾选定位和地图服务(注意:部分国产Android手机可能必须勾选才能获取位置,看下图),但是项目中的地图功能却没法用
  2. 我在高德地图申请了key,也在manifest.json --> App SDK中填写了,但是却并没有生效,打包完连基本的经纬度都获取不到了,但是地图貌似能用,哈,这应该是大多数人遇到的问题

 

解决方法

解决方法就是,申请高德或者百度的key,在manifest.json --> App SDK中勾选地图和定位服务,在App模块权限配置中勾选Maps,这样我们可以获取更多的位置服务权限。

 

 

 

 

 

怎么在高德地图申请key

其实主要的问题是出在这里,大多数人配置完这个在app上还不生效,就是因为申请key时填的包名和云打包时填写的不一致造成的

下面写一下申请流程

  • 注册高德开放平台会员
  • 创建新应用

 

 

  • 在应用下创建key

 

这里安全码SHA1,我们可以用官方给的  BA:AD:09:3A:82:82:9F:B4:32:A7:B2:8C:B4:CC:F0:E9:F3:7D:AE:58

在DCloud公用证书主要信息中有,如下

Alias name: hbuilder  
Creation date: 2014-9-29  
Entry type: PrivateKeyEntry  
Certificate chain length: 1  
Certificate[1]:  
Owner: CN=DH, OU=数字天堂(北京)网络技术有限公司, O=数字天堂(北京)网络技术有限公司, L=海淀, ST=北京, C=86  
Issuer: CN=DH, OU=数字天堂(北京)网络技术有限公司, O=数字天堂(北京)网络技术有限公司, L=海淀, ST=北京, C=86  
Serial number: 5174dc8b  
Valid from: Mon Apr 22 14:45:31 CST 2013 until: Sun Aug 23 14:45:31 CST 3012  
Certificate fingerprints:  
         MD5:  59:20:1C:F6:58:92:02:CB:2C:DA:B2:67:52:47:21:12  
         SHA1: BA:AD:09:3A:82:82:9F:B4:32:A7:B2:8C:B4:CC:F0:E9:F3:7D:AE:58  
         SHA256: D7:5C:1F:A2:B9:AE:86:7C:E6:88:A8:AD:C6:DE:AC:7C:D6:BA:96:F4:3A:75:1F:D1:0A:20:0F:A5:97:4A:C6:36  
Signature algorithm name: SHA1withRSA  
Subject Public Key Algorithm: 1024-bit RSA key

详细请看 Android平台云端打包证书使用说明

 

说一下包名PackageName,大部分人会在这里出错,因为有格式限制,我们一般写这种格式io.dcloud.hbuilder这种格式,但是不管写成什么,一定要和App云端打包时的安卓包名一致,注意,一定不要写成uniapp的appID(__UNI_FDXXXXX)

 

 

 

 

  •  将生成的key填写到manifest.json --> App SDK配置中

 

posted @ 2019-10-22 16:14  Ryan_Yue  阅读(9977)  评论(2编辑  收藏  举报