Flutter应用商店版本检查插件store_version_checker的使用
Flutter应用商店版本检查插件store_version_checker的使用
安装
将App Version Checker添加到您的pubspec.yaml
文件中:
dependencies:
store_version_checker: any # 或者在Pub上最新的版本
使用方法
以下是如何使用store_version_checker
插件来检查应用商店中的最新版本信息。首先,初始化一个StoreVersionChecker
对象,并在initState
方法中调用checkVersion
方法。
import 'package:flutter/material.dart';
import 'package:store_version_checker/store_version_checker.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
// 初始化 StoreVersionChecker 对象
final _checker = StoreVersionChecker();
String? versionInfo;
[@override](/user/override)
void initState() {
super.initState();
checkVersion(); // 调用检查版本的方法
}
// 异步检查更新
void checkVersion() async {
await _checker.checkUpdate().then((value) {
// 打印是否可以更新
print(value.canUpdate); // 如果有更新则返回true
// 当前应用版本
print(value.currentVersion);
// 新的应用版本
print(value.newVersion);
// 应用商店URL
print(value.appURL);
// 错误信息(如果有)
print(value.errorMessage);
setState(() {
versionInfo = "当前版本: ${value.currentVersion}, 新版本: ${value.newVersion}";
});
}).catchError((error) {
setState(() {
versionInfo = "获取版本信息失败";
});
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('版本检查'),
),
body: Padding(
padding: const EdgeInsets.all(12.0),
child: ListView(
children: [
const SizedBox(height: 25.0),
const Text(
"应用版本信息",
style: TextStyle(fontWeight: FontWeight.bold),
),
const SizedBox(height: 10.0),
Text(
versionInfo ?? '加载中...',
),
],
),
),
),
);
}
}
示例代码
以下是一个完整的示例代码,展示了如何同时检查多个应用的版本信息:
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:store_version_checker/store_version_checker.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
// 初始化两个不同的 StoreVersionChecker 对象
final _youtubeChecker = StoreVersionChecker(
appId: "com.vanced.android.youtube",
androidStore: AndroidStore.apkPure,
);
final _snapChatChecker = StoreVersionChecker(appId: "com.snapchat.android");
String? snapValue;
String? youtubeValue;
[@override](/user/override)
void initState() {
super.initState();
checkVersion(); // 调用检查版本的方法
}
// 异步检查多个应用的版本信息
void checkVersion() async {
await Future.wait([
_snapChatChecker
.checkUpdate()
.then((value) => snapValue = value.toString()),
_youtubeChecker
.checkUpdate()
.then((value) => youtubeValue = value.toString()),
]);
setState(() {}); // 更新UI
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('APP 版本检查器'),
),
body: Padding(
padding: const EdgeInsets.all(12.0),
child: ListView(
children: [
const SizedBox(height: 25.0),
const Text(
"Snapchat (Google Play):",
style: TextStyle(fontWeight: FontWeight.bold),
),
const SizedBox(height: 10.0),
Text(
snapValue ?? '加载中...',
),
const SizedBox(height: 50.0),
const Text(
"YouTube Vanced (APK Pure):",
style: TextStyle(fontWeight: FontWeight.bold),
),
const SizedBox(height: 10.0),
Text(
youtubeValue ?? "加载中...",
),
],
),
),
),
);
}
}
更多关于Flutter应用商店版本检查插件store_version_checker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter应用商店版本检查插件store_version_checker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter应用中使用store_version_checker
插件来检查应用商店版本的示例代码。
首先,确保你已经在pubspec.yaml
文件中添加了store_version_checker
依赖:
dependencies:
flutter:
sdk: flutter
store_version_checker: ^x.y.z # 替换为最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你可以在你的Flutter应用中按照以下步骤使用store_version_checker
插件:
- 导入插件
在你的Dart文件中导入插件:
import 'package:store_version_checker/store_version_checker.dart';
- 检查版本
使用StoreVersionChecker
类来检查当前安装的应用版本与应用商店中的版本是否一致。以下是一个完整的示例,展示如何在应用启动时进行检查,并显示一个对话框(如果检测到有新版本)。
import 'package:flutter/material.dart';
import 'package:store_version_checker/store_version_checker.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen(),
);
}
}
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
@override
void initState() {
super.initState();
_checkForUpdates();
}
Future<void> _checkForUpdates() async {
final StoreVersionChecker versionChecker = StoreVersionChecker();
try {
final VersionInfo localVersion = await versionChecker.getLocalAppVersion();
final VersionInfo storeVersion = await versionChecker.getAppStoreVersion();
if (localVersion.version != storeVersion.version) {
// 有新版本可用
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('新版本可用'),
content: Text('当前版本: ${localVersion.version}, 应用商店版本: ${storeVersion.version}'),
actions: <Widget>[
FlatButton(
child: Text('去更新'),
onPressed: () {
// 打开应用商店页面(需要平台特定代码)
if (Platform.isAndroid) {
versionChecker.openPlayStore();
} else if (Platform.isIOS) {
versionChecker.openAppStore();
}
Navigator.of(context).pop();
},
),
FlatButton(
child: Text('取消'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
} else {
// 没有新版本
print('当前版本已是最新: ${localVersion.version}');
}
} catch (e) {
print('检查版本时出错: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('版本检查示例'),
),
body: Center(
child: Text('检查中...'),
),
);
}
}
注意:
- 在iOS上,你需要提供iTunes Connect中的应用ID。你可以在
Info.plist
中添加一个键ITunesConnectAppId
来设置它。 - 在Android上,确保你的应用已在Google Play商店发布,并且你有适当的权限来访问这些信息。
这个示例代码展示了如何在Flutter应用中集成并使用store_version_checker
插件来检查是否有新版本的应用商店版本可用,并在检测到新版本时提示用户更新。