From 11d1adb213d2424d0350f2d2a22819736fb02c9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BA=9A=E7=90=AA?= Date: Tue, 22 Oct 2024 17:15:21 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0map=E5=92=8CchooseLoc?= =?UTF-8?q?ation=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api/location/location.md | 30 ++++++++++++++++++++++++++++++ docs/component/map.md | 16 ++++++++++++++-- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/docs/api/location/location.md b/docs/api/location/location.md index f09608a8a..d47413cf7 100644 --- a/docs/api/location/location.md +++ b/docs/api/location/location.md @@ -135,10 +135,40 @@ Web平台和App平台,本API之前调用了腾讯地图的gcj02坐标免费, |latitude|Number|否|目标地纬度|微信小程序(2.9.0+)、H5-Vue3(3.2.10+)| |longitude|Number|否|目标地经度|微信小程序(2.9.0+)、H5-Vue3(3.2.10+)| |keyword|String|否|搜索关键字,仅App平台支持|| +|useSecureNetwork|Boolea|否|是否通过安全网络调用地点搜索、逆地址解析,默认false|| |success|Function|是|接口调用成功的回调函数,返回内容详见返回参数说明。|| |fail|Function|否|接口调用失败的回调函数(获取定位失败、用户取消等情况下触发)|| |complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|| +**腾讯地图服务商说明** + +出于安全考虑,安卓、iOS端manifest.json内配置的key仅用来展示地图,uni.chooseLocation所依赖的地点搜索、逆地址解析功能需要通过uniCloud云对象[uni-map-co](https://ext.dcloud.net.cn/plugin?id=13872)来调用,开发者可以通过安全网络来保障服务端api不被他人盗用。 + +鸿蒙平台由于暂不支持安全网络,所以chooseLocation依然使用manifest.json内配置的key来调用地点搜索、逆地址解析。 + +默认情况下,uni.chooseLocation不会使用安全网络请求uni-map-co。如果需要使用安全网络请求uni-map-co,需按如下步骤操作: + +1. 项目关联uniCloud服务空间 +2. 按照[uni-map-co](https://ext.dcloud.net.cn/plugin?id=13872)文档导入uni-map-common插件,并配置好地图的key。 +3. 按照[安全网络](https://doc.dcloud.net.cn/uniCloud/secure-network.html)文档,将应用关联到服务空间。 +4. 在项目manifest.json中`安卓/iOS模块配置`中勾选安全网络模块。 +5. 修改uni-map-co入口文件`index.obj.js`内添加如下代码,拦截非法请求: + + ```javascript + module.exports = { + _before: function() { + const clientInfo = this.getClientInfo() + const methodName = this.getMethodName() + const secretType = clientInfo.secretType + if(methodName === 'chooseLocation' && secretType !== 'both' && secretType !== 'request') { + throw new Error('Unauthorized client') + } + } + } + ``` +6. 上传uni-map-co云对象、uni-config-center公共模块、uni-map-common公共模块。 +7. 调用uni.chooseLocation时,将useSecureNetwork设置为true。 + **注意** - 因平台差异,如果SDK配置百度地图,需要设置 keyword,才能显示相关地点 - [非 weex 编译模式](/collocation/manifest.md#app-plus)不支持百度地图 diff --git a/docs/component/map.md b/docs/component/map.md index 29d51c3a5..d6c80140b 100644 --- a/docs/component/map.md +++ b/docs/component/map.md @@ -69,9 +69,18 @@ - 谷歌地图使用 `wgs84` 坐标,其他地图使用 `gcj02` 坐标,用错坐标类型会显示偏移。 - App平台 `layer-style` 属性需要在地图服务商后台创建,值设置为高德后台申请的字符串,[详情](https://developer.amap.com/api/android-sdk/guide/create-map/custom)。 - H5 端高德地图 include-points 属性仅支持 2 个坐标点,表示显示范围的西南角和东北角。 -- App平台 腾讯地图使用web方案,在申请key时注意将页面域名白名单设置为空,如下图 - ![](https://web-ext-storage.dcloud.net.cn/doc/uniapp/component/app-tencent-map-web-service-key.jpg) +### 腾讯地图服务商说明 + +**申请及使用key** + +App平台(包含iOS、安卓、鸿蒙)腾讯地图使用web方案,在申请key时注意将页面域名白名单设置为空,如下图 + +![](https://web-ext-storage.dcloud.net.cn/doc/uniapp/component/app-tencent-map-web-service-key.jpg) + +出于安全考虑,安卓、iOS端manifest.json内配置的key仅用来展示地图,uni.chooseLocation所依赖的地点搜索、逆地址解析功能需要通过uniCloud云对象[uni-map-co](https://ext.dcloud.net.cn/plugin?id=13872)来调用,开发者可以通过安全网络来保障服务端api不被他人盗用,详情参考[uni.chooseLocation](../api/location/location.md#chooselocation)文档。开发者可以将manifest.json内配置的key的所有api额度设置为0,避免key泄露产生额外的资源消耗。 + +鸿蒙平台由于暂不支持安全网络,所以chooseLocation依然使用manifest.json内配置的key来调用地点搜索、逆地址解析。 ### 高德地图审图号 @@ -79,6 +88,9 @@ - 卫星地图:GS (2023)4047号 - 地形图:GS(2021)6352号 +### 腾讯地图审图号 + +- 普通地图:GS粤(2023)1171号 ### 近期新增功能 1. 支持点聚合,适用于marker过多场景。 -- GitLab