Flutter版本检测插件new_version的使用
Flutter版本检测插件new_version的使用
new_version
是一个Flutter插件,用于检查用户是否安装了应用程序的最新版本,并在需要时显示一个带有应用商店链接的提示框。
功能
- 检查用户是否安装了应用程序的最新版本。
- 显示一个提示框,引导用户到相应的应用商店页面进行更新。
安装
在 pubspec.yaml
文件中添加 new_version
作为依赖:
dependencies:
new_version: ^0.3.0
使用
在你的 main.dart
或者其他初始化的地方创建 NewVersion
实例。
final newVersion = NewVersion();
该插件会自动使用你的Flutter包标识符来检查应用商店。如果你的应用在Google Play Store或Apple App Store中有不同的标识符,可以通过提供 androidId
和/或 iOSId
来覆盖默认值。
iOS 注意事项
如果您的应用程序仅在非美国应用商店可用,则需要设置 iOSAppStoreCountry
为相应国家代码(例如:'cn'
对应中国)。
快速开始
调用 showAlertIfNecessary
方法并传入你的应用程序的 BuildContext
将会检查应用程序是否有更新,并自动显示平台特定的提示框,用户可以点击此提示框前往应用商店。
newVersion.showAlertIfNecessary(context: context);
高级用法 😎
如果你想创建自定义提示框或以不同方式使用应用程序版本信息,可以调用 getVersionStatus
方法。这将返回一个包含本地和应用商店版本信息的 Future<VersionStatus>
。
final status = await newVersion.getVersionStatus();
print(status.canUpdate); // (true)
print(status.localVersion); // (1.2.1)
print(status.storeVersion); // (1.2.3)
print(status.appStoreLink); // (https://itunes.apple.com/us/app/google/id284815942?mt=8)
你可以将 VersionStatus
传递给 showUpdateDialog()
方法以展示自定义对话框。
newVersion.showUpdateDialog(
context: context,
versionStatus: status,
dialogTitle: 'Custom dialog title',
dialogText: 'Custom dialog text',
updateButtonText: 'Custom update button text',
dismissButtonText: 'Custom dismiss button text',
dismissAction: () => functionToRunAfterDialogDismissed(),
);
示例代码
以下是一个完整的示例应用,演示如何使用 new_version
插件:
import 'package:flutter/material.dart';
import 'package:new_version/new_version.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
void initState() {
super.initState();
final newVersion = NewVersion(
iOSId: 'com.google.Vespa',
androidId: 'com.google.android.apps.cloudconsole',
);
const simpleBehavior = true;
if (simpleBehavior) {
basicStatusCheck(newVersion);
} else {
advancedStatusCheck(newVersion);
}
}
void basicStatusCheck(NewVersion newVersion) {
newVersion.showAlertIfNecessary(context: context);
}
Future<void> advancedStatusCheck(NewVersion newVersion) async {
final status = await newVersion.getVersionStatus();
if (status != null) {
debugPrint(status.releaseNotes);
debugPrint(status.appStoreLink);
debugPrint(status.localVersion);
debugPrint(status.storeVersion);
debugPrint(status.canUpdate.toString());
newVersion.showUpdateDialog(
context: context,
versionStatus: status,
dialogTitle: 'Custom Title',
dialogText: 'Custom Text',
);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Example App"),
),
);
}
}
这个示例展示了如何通过简单和高级两种方式来集成 new_version
插件,确保用户能够及时获得应用程序的最新版本。
更多关于Flutter版本检测插件new_version的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter版本检测插件new_version的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何在Flutter项目中使用new_version
插件来检测应用版本更新的代码示例。这个插件允许你检查当前应用的版本与Play Store或App Store上的最新版本是否一致,并提示用户进行更新。
1. 添加依赖
首先,你需要在pubspec.yaml
文件中添加new_version
插件的依赖:
dependencies:
flutter:
sdk: flutter
new_version: ^0.13.0 # 请检查最新版本号
2. 导入插件
在你的Dart文件中导入new_version
插件:
import 'package:new_version/new_version.dart';
import 'package:flutter/material.dart';
3. 检查版本更新
接下来,你可以在你的应用中添加逻辑来检查版本更新。通常,这会在应用启动时或在某个特定的页面/按钮点击事件中完成。
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Version Checker'),
),
body: Center(
child: VersionChecker(),
),
),
);
}
}
class VersionChecker extends StatefulWidget {
@override
_VersionCheckerState createState() => _VersionCheckerState();
}
class _VersionCheckerState extends State<VersionChecker> {
@override
void initState() {
super.initState();
_checkForUpdates();
}
Future<void> _checkForUpdates() async {
NewVersion newVersion = NewVersion();
// 获取当前应用的版本信息
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String currentVersion = packageInfo.version;
String packageName = packageInfo.packageName;
// 配置new_version插件
newVersion.showAlert(
mandatoryUpdate: false, // 是否强制更新
packageName: packageName,
versionCode: packageInfo.versionCode,
ignore: currentVersion, // 当前版本号,用于比较
forceUpdateFrom: null, // 从哪个版本开始强制更新
androidStoreLink: 'https://play.google.com/store/apps/details?id=$packageName', // Google Play商店链接
iosStoreLink: 'https://apps.apple.com/app/id<YOUR_APP_ID>/', // App Store链接
// 自定义对话框标题和消息(可选)
alertTitle: "New Version Available",
alertMessage: "Please update the app to the latest version.",
alertPositiveButton: "Update",
alertNegativeButton: "Later",
// 自定义按钮点击事件(可选)
onAlertPositiveButtonPressed: () async {
// 打开应用商店页面
if (Platform.isAndroid) {
await newVersion.openAppStore(androidStoreLink: newVersion.androidStoreLink);
} else if (Platform.isIOS) {
await newVersion.openAppStore(iosStoreLink: newVersion.iosStoreLink);
}
},
onAlertNegativeButtonPressed: () {
// 用户选择稍后更新
},
);
}
@override
Widget build(BuildContext context) {
return Text("Checking for updates...");
}
}
注意事项
- iOS Store Link: 对于iOS,你需要将
iosStoreLink
中的<YOUR_APP_ID>
替换为你的应用ID。 - 权限: 确保你的应用在
AndroidManifest.xml
和Info.plist
中拥有必要的权限和配置,以便能够访问应用商店链接。 - 测试: 在发布之前,确保在开发和生产环境中测试版本检查功能。
这个示例展示了如何使用new_version
插件来检查应用的版本更新,并在有新版本可用时提示用户进行更新。根据需求,你可以进一步自定义和扩展此功能。