Skip to content

wmuj/flutter_bmflocation

Repository files navigation

flutter_bmflocation(Baidu Location Flutter 插件 / 维护分支)

一个用于 百度定位(Baidu Location) 的 Flutter 插件维护分支,支持 Android / iOS 平台,提供单次定位、连续定位、地理围栏、设备方向等基础能力。

本仓库是 flutter_bmflocation 的维护分支(fork 版本)
已移除不受支持的 HarmonyOS(OHOS)相关代码,用于保证在新版本 Flutter 下的稳定性。


✨ 功能特性

  • 百度定位 SDK Flutter 封装
  • 支持 Android / iOS 双平台
  • 单次定位、连续定位、后台定位
  • 地理围栏(圆形、多边形)
  • 设备方向(Heading)监听
  • 适配较新的 Flutter Stable 版本
  • 不支持 HarmonyOS / OHOS

🚫 关于 HarmonyOS(OHOS)

本 fork 已明确移除所有 HarmonyOS(OHOS)相关代码,包括但不限于:

  • Platform.isOhos 判断逻辑
  • ohos/ 平台目录
  • OHOS 专属配置与调用

移除原因

  1. Flutter 官方目前不支持 HarmonyOS
  2. OHOS 分支在新版本 Flutter 中会导致 编译失败,报错:
    Error: Member not found: 'isOhos'.
    
  3. 本仓库仅专注于 Android / iOS 的稳定使用

修改的文件

  • lib/src/controller/bdmap_location_controller.dart (L123)
  • lib/src/private/dispatcher/bdmap_location_options_dispather.dart (L59)

Platform.isIOS || Platform.isOhos 改为只判断 Platform.isIOS


📦 安装方式

推荐使用 Git 方式依赖,避免 pub cache 被覆盖:

dependencies:
  flutter_bmflocation:
    git:
      url: https://github.com/你的用户名/flutter_bmflocation.git
      ref: main

然后执行:

flutter clean
flutter pub get

🔧 平台配置

Android 配置

  1. AndroidManifest.xml 中配置 百度地图 AK
  2. 添加必要权限(网络、定位、后台定位等)
  3. 按百度定位 Android SDK 官方文档完成初始化

iOS 配置

  1. AppDelegate 中初始化 百度地图 AK
  2. Info.plist 中配置定位权限描述:
    • NSLocationWhenInUseUsageDescription
    • NSLocationAlwaysUsageDescription
    • NSLocationAlwaysAndWhenInUseUsageDescription
  3. 确保当前网络环境可以正常访问百度定位服务
  4. ⚠️ 无线调试时请确保已允许本地网络(Local Network)权限

🧪 示例工程

插件自带示例工程,位于 example/ 目录:

cd example
flutter run

示例包含:

  • 单次定位
  • 连续定位
  • 圆形地理围栏
  • 多边形地理围栏
  • 设备方向监听

🛠️ 维护说明

  • 本插件为 fork 版本,用于项目长期维护
  • 不会因 flutter pub get 或清理缓存而丢失修改
  • 欢迎提交 IssuePR 进行改进

📄 许可证

本项目遵循原始 flutter_bmflocation 插件的许可证协议。
详见 LICENSE 文件。


🔗 原始插件

About

百度定位 Flutter 插件维护版 - 已移除 Platform.isOhos,修复新版本 Flutter 在 iOS 平台的编译错误

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors