Flutter应用升级管理插件tp_upgrade_lib的使用
tp_upgrade_lib flutter sdk 3.19.6
仅适用于Android平台。
Getting Started(开始使用)
在您的 pubspec.yaml
文件中添加最新的库,然后根据示例代码进行配置。
示例代码
以下是完整的示例代码,展示如何使用 tp_upgrade_lib
插件来实现应用升级功能。
示例代码文件:example/lib/main.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:tp_upgrade_lib/tp_update_widget.dart'; // 引入升级弹窗组件
import 'package:tp_upgrade_lib/tp_upgrade_lib.dart'; // 引入核心库
import 'tp_update_util.dart'; // 自定义工具类
void main() async {
WidgetsFlutterBinding.ensureInitialized(); // 初始化Flutter绑定
runApp(MyApp()); // 启动应用
}
// 主应用类
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(), // 设置主页
);
}
}
// 主页面类
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
// 主页面状态类
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.blue, // 设置背景颜色
title: const Text('插件示例应用'), // 设置标题
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center, // 主轴居中对齐
children: [
// 更新按钮
MaterialButton(
onPressed: () => onDownTap(context), // 点击事件
child: Text('点击更新', style: TextStyle(color: Colors.white)), // 按钮文字
color: Colors.blue, // 按钮颜色
),
],
),
);
}
// 点击更新按钮时触发的方法
onDownTap(BuildContext context) {
TpUpdateUtil.checkVs(context); // 调用检查更新方法
}
}
使用说明
-
添加依赖
在pubspec.yaml
文件中添加以下依赖:dependencies: tp_upgrade_lib: ^3.19.6
然后执行
flutter pub get
安装依赖。 -
初始化
在main()
方法中调用WidgetsFlutterBinding.ensureInitialized()
并启动应用。 -
创建主页面
创建一个包含按钮的页面,点击按钮时调用TpUpdateUtil.checkVs(context)
来检查是否有新版本。 -
自定义工具类
可以通过自定义工具类tp_update_util.dart
配置具体的更新逻辑。例如:import 'package:tp_upgrade_lib/tp_upgrade_lib.dart'; class TpUpdateUtil { static void checkVs(BuildContext context) { TpUpgradeLib.checkVersion(context, (result) { if (result != null && result['isNewVersion'] == true) { // 显示更新弹窗 TpUpdateWidget.showUpdateDialog(context, result); } else { print('当前已是最新版本'); } }); } }
更多关于Flutter应用升级管理插件tp_upgrade_lib的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
tp_upgrade_lib
是一个用于 Flutter 应用升级管理的插件,它可以帮助开发者轻松实现应用的版本检测、下载和安装等功能。以下是如何使用 tp_upgrade_lib
插件的详细步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 tp_upgrade_lib
插件的依赖:
dependencies:
flutter:
sdk: flutter
tp_upgrade_lib: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 初始化插件
在你的 Dart 代码中,首先需要初始化 tp_upgrade_lib
插件。通常可以在 main.dart
文件中进行初始化:
import 'package:tp_upgrade_lib/tp_upgrade_lib.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化插件
await TPUpgradeLib.init(
appId: 'your_app_id', // 你的应用ID
baseUrl: 'https://your-upgrade-server.com', // 升级服务器的URL
);
runApp(MyApp());
}
3. 检查更新
在需要检查更新的地方,调用 checkForUpdate
方法来检查是否有新版本可用:
import 'package:tp_upgrade_lib/tp_upgrade_lib.dart';
void checkUpdate() async {
try {
final updateInfo = await TPUpgradeLib.checkForUpdate();
if (updateInfo != null && updateInfo.hasUpdate) {
// 如果有更新,显示更新对话框
showUpdateDialog(updateInfo);
} else {
// 没有更新
print('当前已是最新版本');
}
} catch (e) {
print('检查更新失败: $e');
}
}
void showUpdateDialog(UpdateInfo updateInfo) {
// 显示更新对话框,提示用户下载新版本
// 你可以使用 `updateInfo.downloadUrl` 来获取下载链接
// 使用 `updateInfo.versionName` 来显示新版本号
}
4. 下载并安装更新
如果用户选择更新,你可以使用 downloadAndInstall
方法来下载并安装新版本:
import 'package:tp_upgrade_lib/tp_upgrade_lib.dart';
void downloadAndInstallUpdate(String downloadUrl) async {
try {
await TPUpgradeLib.downloadAndInstall(downloadUrl);
} catch (e) {
print('下载或安装失败: $e');
}
}
5. 处理下载进度
如果你需要显示下载进度,可以使用 TPUpgradeLib
提供的进度回调:
import 'package:tp_upgrade_lib/tp_upgrade_lib.dart';
void downloadWithProgress(String downloadUrl) async {
try {
await TPUpgradeLib.downloadAndInstall(
downloadUrl,
onProgress: (progress) {
print('下载进度: $progress%');
},
);
} catch (e) {
print('下载或安装失败: $e');
}
}
6. 处理安装结果
你还可以监听安装结果,以便在安装完成后执行一些操作:
import 'package:tp_upgrade_lib/tp_upgrade_lib.dart';
void installWithCallback(String downloadUrl) async {
try {
await TPUpgradeLib.downloadAndInstall(
downloadUrl,
onInstallComplete: () {
print('安装完成');
},
);
} catch (e) {
print('下载或安装失败: $e');
}
}
7. 其他功能
tp_upgrade_lib
还提供了其他一些功能,例如:
- 强制更新:你可以通过
UpdateInfo
中的isForceUpdate
字段来判断是否需要强制更新。 - 自定义更新对话框:你可以根据
UpdateInfo
中的信息自定义更新对话框的样式和行为。
8. 注意事项
- Android:在 Android 平台上,你需要确保应用有权限访问存储空间,以便下载和安装 APK 文件。
- iOS:在 iOS 平台上,应用更新通常通过 App Store 进行,因此
tp_upgrade_lib
主要用于检测新版本并引导用户前往 App Store 更新。
9. 示例代码
以下是一个完整的示例代码,展示了如何使用 tp_upgrade_lib
插件:
import 'package:flutter/material.dart';
import 'package:tp_upgrade_lib/tp_upgrade_lib.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await TPUpgradeLib.init(
appId: 'your_app_id',
baseUrl: 'https://your-upgrade-server.com',
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('App Upgrade Example'),
),
body: Center(
child: ElevatedButton(
onPressed: checkUpdate,
child: Text('Check for Update'),
),
),
),
);
}
}
void checkUpdate() async {
try {
final updateInfo = await TPUpgradeLib.checkForUpdate();
if (updateInfo != null && updateInfo.hasUpdate) {
showUpdateDialog(updateInfo);
} else {
print('当前已是最新版本');
}
} catch (e) {
print('检查更新失败: $e');
}
}
void showUpdateDialog(UpdateInfo updateInfo) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('发现新版本 ${updateInfo.versionName}'),
content: Text('是否立即更新?'),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('取消'),
),
TextButton(
onPressed: () {
Navigator.of(context).pop();
downloadAndInstallUpdate(updateInfo.downloadUrl);
},
child: Text('更新'),
),
],
);
},
);
}
void downloadAndInstallUpdate(String downloadUrl) async {
try {
await TPUpgradeLib.downloadAndInstall(
downloadUrl,
onProgress: (progress) {
print('下载进度: $progress%');
},
onInstallComplete: () {
print('安装完成');
},
);
} catch (e) {
print('下载或安装失败: $e');
}
}