# uni-app-x-lbs

基于百度定位 SDK 的 uni-app x 跨平台定位解决方案，提供 Android、iOS 和 HarmonyOS Next 平台的定位能力。

## 简介

本项目是一个基于 [uni-app x](https://www.dcloud.net.cn/uni-app-x.html) 框架开发的 LBS（Location Based Services）项目，集成了百度定位 SDK，通过 UTS 插件的方式为应用提供定位服务。

## 支持平台

| 平台      | 支持 |
|---------|------|
| Android | ✓    |
| iOS     | ✓    |
| HarmonyOS Next | ✓    |
| 小程序   | ✗    |
| H5      | ✗    |

## 项目结构

```
uni-app-x-lbs/
├── pages/                        # 页面目录
│   ├── index/                    # 首页导航列表
│   ├── api/                      # API 示例页面
│   │   ├── location/             # 定位示例（含 Android/iOS/Harmony 子页）
│   │   │   ├── android/          # Android 定位示例
│   │   │   ├── harmony/          # HarmonyOS 定位示例
│   │   │   ├── ios/              # iOS 定位示例
│   │   │   └── index.uvue        # 跨端定位入口页
│   │   └── map/                  # 地图示例
│   │       ├── map/              # 地图交互/图层/路线/检索示例
│   │       └── overlay/          # 覆盖物示例（Marker/Polyline/Polygon 等）
│   └── scene/                    # 综合场景示例
│       ├── routePlan.uvue         # 路线规划场景
│       ├── scenicArea.uvue        # 景区场景
│       └── tourLeaderSafety.uvue  # 导游安全场景
├── uni_modules/                  # uni-app 插件目录
│   ├── baidumap-location/        # 百度定位 UTS 插件（Android/iOS/Harmony）
│   └── baidumap-view/            # 百度地图 UTS 插件（Android/iOS/Harmony）
├── static/                       # 静态资源（图片、样式文件）
├── harmony-configs/              # HarmonyOS 工程配置
│   ├── AppScope/                 # 应用级资源
│   ├── entry/                    # entry 模块配置
│   └── build-profile.json5       # 签名与构建配置
├── App.uvue                      # 应用入口（SDK 初始化）
├── main.uts                      # createSSRApp 入口
├── pages.json                    # 页面路由配置
├── manifest.json                 # 应用配置（appid、版本、平台）
└── uni.scss                      # 全局样式
```

## 插件说明

### baidumap-location

百度定位 UTS 插件，基于百度定位 SDK 开发，支持单次定位、连续定位、权限检测和配置管理。

- **版本**: 1.0.0
- **HBuilderX 最低要求**: 4.25
- **权限**: 定位权限
- **数据采集**: 无

#### 功能特性

- 单次定位
- 连续定位
- 定位权限检测
- 定位配置管理
- 跨平台支持（Android / iOS / HarmonyOS Next）


## 配置说明

### AK 配置

项目使用百度地图/定位 SDK 前必须配置有效的 AK（Access Key）。AK 申请地址：[百度地图开放平台](https://lbs.baidu.com/)。

**地图 SDK（App.uvue）：**

```typescript
// HarmonyOS
SdkInit.setAK("填写AK")

// Android
SdkInit.setAK("填写AK")

// iOS
SdkInit.setAK("填写AK")
```

**定位 SDK（各定位页面）：**

```typescript
BMapLocationClient.checkAuthKey('填写AK')
```

将以上 `填写AK` 替换为你的实际 AK 即可。不同平台（Android / iOS / HarmonyOS）需要在百度地图开放平台分别申请对应的 AK，并按平台条件编译填写。

### HarmonyOS 签名配置

`harmony-configs/build-profile.json5` 中的 `signingConfigs` 需配置真实签名信息。默认 `material` 字段为空，需填写后才能正常运行。

证书文件可放置于 `harmony-configs/config/debug/`（调试）或 `harmony-configs/config/release/`（发布）目录下。

## 开发环境

- HBuilderX 4.25+
- uni-app x

## 快速开始

1. 克隆项目到本地
2. 使用 HBuilderX 打开项目
3. 运行到目标设备/模拟器

## 相关文档

- [uni-app x 官方文档](https://doc.dcloud.net.cn/uni-app-x/)
- [百度定位 Android SDK](https://lbsyun.baidu.com/index.php?title=android-locsdk)
- [百度定位 iOS SDK](https://lbs.baidu.com/faq/api?title=ios-locsdk)
- [百度定位 HarmonyOS Next SDK](https://lbs.baidu.com/faq/api?title=harmonylocsdk)
- [UTS 语言文档](https://doc.dcloud.net.cn/uni-app-x/uts/)
- [自定义基座文档](https://ku.baidu-int.com/knowledge/HFVrC7hq1Q/CIkDF2HdNp/uaGRzi39Ei/CnKRF-PlxgTdjs)

## 许可证

Copyright © Baidu, Inc. All Rights Reserved.
