uniApp获取高德高德地图api发布版安全码SHA1

本文指导如何在uniApp打包后解决高德地图API无法使用的难题,涉及解压APK、查找RSA文件、执行keytool指令获取SHA1安全码,并强调关键步骤:确保PackageName匹配,申请对应高德地图key。

  我在开发中使用到了高德地图api;基座测试时候可以正常使用,但是打包之后发现高德地图无法使用;所以为了解决uniApp打包后,高德地图无法使用的问题,我们需要发布版安全码SHA1来申请高德地图的key;

        1.找到打包好的apk,将它的后缀改为zip;然后进行解压。

        2.找到后缀为RSA的文件;然后在cmd中执行下面的指令

         keytool -printcert -file ****.RSA    (注意:****.RSA 是指RSA后缀文件的名字,执行命令时需要修改)

        3.然后找到安全码 就可以使用了。

注意 申请的高德地图 key 中的PackageName要和你打包的报名一致

### 集成高德地图 API 获取当前位置的经纬度 在 UniApp 中集成高德地图 API获取当前位置的经纬度,可以通过以下方式实现: #### 1. 使用 `uni.getLocation()` 方法 `uni.getLocation()` 是 UniApp 提供的一个用于获取当前设备地理位置的方法。它可以直接返回用户的经纬度信息[^4]。 以下是使用该方法的具体代码示例: ```javascript methods: { getCurrentPosition() { uni.getLocation({ type: 'gcj02', // 返回可以用于uni.openLocation的坐标 success(res) { const latitude = res.latitude; // 纬度 const longitude = res.longitude; // 经度 console.log('纬度:', latitude); console.log('经度:', longitude); // 可在此处调用高德逆地理编码接口进一步解析位置详情 }, fail(err) { console.error('获取位置失败:', err); } }); } } ``` #### 2. 调用高德地图逆地理编码 API 解析详细地址 如果需要更详细的地址信息(如省市区名称),可以在获取到经纬度后,通过高德地图的逆地理编码 API 进一步处理。具体步骤如下: - **准备高德地图 Key**:前往 [高德开放平台](https://console.amap.com/dev/key/app),注册并申请一个有效的高德地图 Key。 - **构建请求 URL**:根据获取到的经纬度,拼接高德地图逆地理编码 API 的请求参数。 以下是完整的代码逻辑: ```javascript methods: { getDetailedAddress(longitude, latitude) { const amapKey = '您的高德地图Key'; // 替换为您自己的Key const url = `https://restapi.amap.com/v3/geocode/regeo?output=json&location=${longitude},${latitude}&key=${amapKey}`; uni.request({ url, method: 'GET', success(res) { if (res.data.status === '1') { // 请求成功 const regeocode = res.data.regeocode; const addressComponent = regeocode.addressComponent; console.log('省份:', addressComponent.province); // 省份 console.log('城市:', addressComponent.city); // 城市 console.log('区县:', addressComponent.district); // 区县 } else { console.error('高德地图API请求失败:', res.data.info); } }, fail(err) { console.error('高德地图API请求失败:', err); } }); }, getLocationAndDetails() { uni.getLocation({ type: 'gcj02', success(res) { this.getDetailedAddress(res.longitude, res.latitude); }, fail(err) { console.error('获取位置失败:', err); } }); } } ``` #### 3. 处理 KEY 鉴权失败问题 如果遇到类似于 `getLocation:fail [geolocation:7]` 错误提示,则可能是由于高德地图 Key 的 SHA1 值未正确绑定所致。需按照以下步骤排查和解决问题: - **确认 APK 签名 SHA1 值**:对于 Android 平台应用,在打包时会生成对应的签名文件。可通过命令行工具提取其 SHA1 值,并将其绑定至高德开发者后台。 - **检查 Manifest 文件配置**:确保在项目的 `manifest.json` 文件中已启用地图功能,并填入正确的高德地图 Key[^3]。 #### 注意事项 - 如果项目涉及多平台发布,请分别针对不同环境设置独立的高德地图 Key。 - 对于 iOS 设备,还需注意权限声明以及 Info.plist 文件的相关配置。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值