Flutter鸿蒙跨平台插件:r_upgrade 使用指南
r_upgrade是一款支持鸿蒙平台的Flutter应用升级插件,提供版本检查、升级弹框等核心功能。该插件通过Git方式引入项目,支持跨平台使用但鸿蒙仅实现部分API(如checkAppUpdate和showUpdateDialog)。开发者可快速集成基础升级功能,兼容Flutter 3.7+/3.22+版本。虽然鸿蒙暂不支持下载管理、应用商店升级等扩展功能,但已满足基本升级需求。插件使用简单,通
·
插件介绍
r_upgrade是一个功能强大的Flutter插件,用于在鸿蒙平台上实现应用升级功能。该插件基于r_upgrade开发,提供了应用版本检查、升级提示等功能,支持鸿蒙、iOS和Android平台。
主要功能特点:
- 检查APP版本更新
- 显示版本升级弹框
- 支持多种升级方式
- 跨平台兼容,使用方法一致
如何使用插件
1. 包的引入
由于该三方库为自定义修改版本,需要以git形式引入。在引用的项目中,pubspec.yaml中dependencies新增配置:
dependencies:
r_upgrade:
git:
url: "https://atomgit.com/"
path: "fluttertpc_r_upgrade-master"
执行命令安装依赖:
flutter pub get
2. API的调用
2.1 基本使用示例
import 'package:flutter/material.dart';
import 'package:r_upgrade/r_upgrade.dart';
class UpgradeExample extends StatefulWidget {
const UpgradeExample({Key? key}) : super(key: key);
State<UpgradeExample> createState() => _UpgradeExampleState();
}
class _UpgradeExampleState extends State<UpgradeExample> {
int? checkAppUpdateResult;
int? showUpdateDialogResult;
void initState() {
super.initState();
// 设置调试模式
RUpgrade.setDebug(true);
}
// 检查APP版本更新
Future<void> _checkAppUpdate() async {
try {
final result = await RUpgrade.checkAppUpdate();
setState(() {
checkAppUpdateResult = result;
});
print('检查版本更新结果: $result');
} catch (e) {
print('检查版本更新失败: $e');
}
}
// 显示版本升级弹框
Future<void> _showUpdateDialog() async {
try {
final result = await RUpgrade.showUpdateDialog();
setState(() {
showUpdateDialogResult = result;
});
print('显示升级弹框结果: $result');
} catch (e) {
print('显示升级弹框失败: $e');
}
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('应用升级示例'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: _checkAppUpdate,
child: const Text('检查版本更新'),
),
const SizedBox(height: 20),
ElevatedButton(
onPressed: _showUpdateDialog,
child: const Text('显示升级弹框'),
),
const SizedBox(height: 20),
if (checkAppUpdateResult != null)
Text('检查结果: $checkAppUpdateResult'),
const SizedBox(height: 20),
if (showUpdateDialogResult != null)
Text('弹框结果: $showUpdateDialogResult'),
],
),
),
);
}
}
2.2 其他API说明
// 设置调试模式
await RUpgrade.setDebug(true);
// 从网页升级APP(鸿蒙平台不支持)
// bool isSuccess = await RUpgrade.upgradeFromUrl('https://example.com');
// 从安卓应用商店升级(鸿蒙平台不支持)
// bool isSuccess = await RUpgrade.upgradeFromAndroidStore(AndroidStore.TENCENT);
// 获取安卓应用商店列表(鸿蒙平台不支持)
// List<AndroidStore>? stores = await RUpgrade.androidStores;
// 获取安卓应用商店版本号(鸿蒙平台不支持)
// String? version = await RUpgrade.getVersionFromAndroidStore(AndroidStore.TENCENT);
API说明
| 方法名 | 描述 | 返回值 | 鸿蒙支持 |
|---|---|---|---|
checkAppUpdate |
检查APP版本是否有更新 | Future<int?> |
yes |
showUpdateDialog |
显示APP版本升级弹框 | Future<int?> |
yes |
setDebug |
设置是否打印日志 | Future<void> |
no |
upgradeFromUrl |
从网页升级APP | Future<bool?> |
no |
upgradeFromAndroidStore |
从安卓应用商店升级 | Future<bool?> |
no |
androidStores |
获取安卓应用商店列表 | Future<List<AndroidStore>?> |
no |
getVersionFromAndroidStore |
获取安卓应用商店版本号 | Future<String?> |
no |
stream |
下载信息流 | Stream<DownloadInfo> |
no |
upgrade |
升级安卓应用程序 | Future<int?> |
no |
cancel |
取消指定ID的下载任务 | Future<bool?> |
no |
install |
通过指定ID安装APK文件 | Future<bool?> |
no |
installByPath |
通过指定路径安装APK文件 | Future<bool?> |
no |
pause |
暂停指定ID的下载任务 | Future<bool?> |
no |
upgradeWithId |
使用ID进行升级 | Future<bool?> |
no |
getDownloadStatus |
根据ID获取下载状态 | Future<DownloadStatus?> |
no |
getLastUpgradedId |
获取最后一次下载ID | Future<int?> |
no |
upgradeFromAppStore |
从App Store升级 | Future<bool?> |
no |
getVersionFromAppStore |
从App Store获取版本号 | Future<int?> |
no |
约束与限制
兼容性
在以下版本中已测试通过:
- Flutter: 3.7.12-ohos-1.1.3; SDK: 5.0.0(12); IDE: DevEco Studio: 5.1.0.828; ROM: 5.1.0.130 SP8;
- Flutter: 3.22.1-ohos-1.0.3; SDK: 5.0.0(12); IDE: DevEco Studio: 5.1.0.828; ROM: 5.1.0.130 SP8;
总结
r_upgrade为鸿蒙平台提供了应用升级功能,使开发者能够轻松实现版本检查和升级提示。虽然鸿蒙平台目前仅支持部分API,但核心功能已经能够满足基本的应用升级需求。
通过本文的介绍,您可以快速上手使用r_upgrade,实现应用版本检查和升级提示功能。如果您在使用过程中遇到问题,可以参考插件的示例代码或社区文档。
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
更多推荐


所有评论(0)