react native集成腾讯位置服务

一、创建应用和申请key

进入网站

腾讯位置服务 - 立足生态,连接未来

应用管理-我的应用-创建应用


创建完成后,点击添加key,输入key名称,勾选SDK、WebServiceAPI,填写包名

点击‘配额管理-账户额度-配额分配’,为相应的应用接口分配配额

二、配置应用

在android/app/build.gradle中添加如下代码(注意是app文件夹下的)

dependencies {
    // 地图库
    implementation('com.tencent.map:tencent-map-vector-sdk:5.7.0')
    // 地图组件库,包括小车平移、点聚合等组件功能,详见开发指南。
    implementation('com.tencent.map:sdk-utilities:1.0.9')
}

最新版本号可参考https://lbs.qq.com/mobile/androidMapSDK/download/3dDownload

配置腾讯地图key

在android/app/src/main/AndroidManifest.xml中application标签体内加入

<meta-data android:name="TencentMapSDK" android:value="U3MBZ-EXWCT-2L2X2-VDRMF-WRVH2-QXF3M"/>

执行npm start后报错

Warning:SDK processing. This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered.

解决方案

file-setting-Languages&Frameworks-Android SDK-SDK Tools-CMake升级到最新版本

报错

Manifest merger failed : Attribute application@allowBackup value=(false) from AndroidManifest.xml:10:7-34 is also present at [com.tencent.map:sdk-utilities:1.0.9] AndroidManifest.xml:11:9-35 value=(true).

Android官方对于这个属性的定义是,Android API Level 8及其以上Android系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中AndroidManifest.xml文件中的allowBackup属性的值。当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。例如通讯录、通话记录、聊天记录、锁屏密码、应用登录账号和密码等。

解决方案

删除application标签中的android:allowBackup

三、调用WebServiceAPI

本人暂时只用到了行政区划API,后续如集成了导航SDK再做补充。

由于本项目暂时未搭建后台服务器,这里采用签名校验的方式来调用。

首先将请求参数按参数名升序进行排序,再计算签名sig

sig=md5(‘请求路径’+‘?’+‘请求参数’+‘SK’)

签名校验方法详见常见问题 | 腾讯位置服务

安装依赖包

yarn add ts-md5
//引入依赖包
import { Md5 } from 'ts-md5';


const sig = Md5.hashStr('/ws/district/v1/list?key=U3MBZ-*****-*****-*****-*****-QXF3M&struct_type=1ni********************EH').toLowerCase();
    axios.get('https://apis.map.qq.com/ws/district/v1/list',{
      params: {
        key: 'U3MBZ-*****-*****-*****-*****-QXF3M',//这里的key就是‘我的应用’中的key
        'struct_type': 1,
        sig,
      }
    }).then(res => {
      if(res.status === 200) {
        setList(transDistrict(res.data.result));
      }
    });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值