需求:定位-获取经纬度及详细地址
解决方案: 直接使用uniapp 的定位api uni.getLocation即可
注意事项:1、打包到真机运行需要申请高德的安卓平台key,并配置在manifest.json文件下的定位GeoLocation(定位)里。
2、打包时填写获取的自有证书,获取方法参考文档。三个关键:1、使用自有证书,2、官方文档申请自有证书,证书里的sha1去高德开发平台换取安卓key, 3、高德安卓key填入app打包的配置
2、测试运行可以正常定位,是因为真机运行基座使用了DCloud向高德申请的sdk配置,打包后必须由开发者自己申请。如果手机自带GMS且网络环境可以正常访问google定位服务器,此时无需在 manifest 填写高德定位的 sdk 配置。
3、HBuilderX标准基座默认使用高德地图SDK,可以直接真机运行测试,此时配置的应用包名、签名信息不生效,如果想测试自己的高德key, 正式发布前请提交云端打包或使用自定义调试基座测试。
4、打包
失败过程:
1、开始尝试uni.getLocation 没有配置key导致判断失误,误以为该方法定位所需时间太久,转而想尝试使用 高德的js api或web api,但web api无法使用在app上。
2、使用高德js api,在pc端的edge浏览器本地可以正常获取经纬度,chrome浏览器无法使用(调用的是google定位api),但打包后再安卓上页面无任何显示,应该为报错,在使用安卓基座后发现该问题为引入高德npm包和使用js api导致,故而放弃该方法。才在安卓基座上发现自带方案实际是有效的。
3、发现js api无法使用后另外一种方法比较复杂没有尝试,blog.csdn.net/Primary_Ins…