Skip to content

ThingsBoard 移动端应用的使用 ​

正文与配图来自原稿。基于官方 flutter_thingsboard_app 跑 Web/APK,并处理登录时 version: unknown 问题。

0、流程梳理 ​

搭建并启动 flutter_thingsboard_app 的大致步骤:

  1. 安装 Flutter SDK,把 bin 加入 PATH
  2. 执行 flutter doctor,补齐依赖
  3. 安装 IDEA,装 Flutter 插件并重启
  4. 打开 flutter_thingsboard_app 根目录
  5. Run → Run main.dart(模拟器或真机)

1、安装 Flutter SDK 并配置环境变量 ​

1.1、下载 ​

中文文档:
https://flutter.cn/docs/get-started/install/windows

下载 Flutter

1.2、解压并配置 PATH ​

解压后把 …/flutter/bin 加入系统 PATH。

1.3、验证 ​

bash
flutter --version

2、下载 flutter_thingsboard_app ​

bash
git clone -b release/1.0.6 https://github.com/thingsboard/flutter_thingsboard_app.git

注意分支与 Flutter 版本对应:

版本对应

原稿注明:2024-03-18 起最低 Flutter 3.16.0。

3、IDEA 安装 Flutter / Dart 插件 ​

安装插件

4、IDEA 指定 Flutter / Dart ​

指定本机 Flutter 路径:

Flutter SDK 路径

Dart SDK 一般随 Flutter 自带:

Dart SDK 路径

5、配置 TB 请求地址 ​

修改 lib/constants/app_constants.dart 中的 ThingsBoard 地址:

修改连接地址

不要用 localhost / 127.0.0.1。 即使用本机 TB,也请填局域网可访问的 IP/主机名(手机/模拟器要能访问到)。

6、启动应用 ​

选择 Chrome (web) 运行:

选择 Chrome 运行

浏览器界面:

Web 登录页

用 tenant@thingsboard.org / tenant 登录时,login 正常,但 info 可能返回:

json
{"version":"unknown"}

version unknown

原因与处理 ​

全局搜 "system/info",见 SystemInfoController:会读系统版本;若 BuildProperties 未注入,会走进 else,返回 unknown:

SystemInfoController 1

SystemInfoController 2

java
@Autowired(required = false)
private BuildProperties buildProperties;

原稿说明:Spring Boot 较新版本中 BuildProperties 注入行为变化,可能导致拿不到版本。

解决(临时): 把返回 unknown 的那行改成你当前 TB 版本,例如:

java
infoObject.put("version", "3.5.1");  // 改成你的 ThingsBoard 版本

重启 TB 后再登 App。

7、App 启动成功 ​

info 返回正确版本后即可进入应用:

版本正确

登录成功

8、构建 Android APK ​

Build → Flutter → Build APK。若报错:

text
No Android SDK found. Try setting the ANDROID_SDK_ROOT environment variable.

无 Android SDK

报错详情

配置 SDK 路径:

bash
flutter config --android-sdk D:\path\to\android\sdk

配置 android-sdk

SDK 目录

再执行:

bash
flutter build apk

开始构建

构建过程

生成 APK 后可装到安卓手机:

APK 产物

9、向现有 Flutter 应用加桌面支持(原稿:桌面运行失败) ​

bash
flutter create --platforms=windows,macos,linux .

添加桌面平台

Windows 需打开开发者模式等:

开发者选项

原稿结论:桌面端尝试未成功;优先用 Web / Android。

10、Android 手持机 USB 运行 ​

真机打开调试,USB 连接后选设备 Run 即可(步骤从略)。


补充(辅) ​

  • App 分支与 CE/PE 版本尽量匹配;升级官方 app 仓库后重新对照 app_constants.dart。
  • 生产勿长期硬编码 version;应从构建信息或配置正确暴露 BuildProperties / 等价接口。

相关文章 ​