如何使用 in_app_update 强制用户从 Flutter 中的 Play 商店更新应用程序
How to force users to update app from play store in Flutter using in_app_update
我希望我的应用程序的用户始终拥有最新版本。如果他们没有最新版本,它应该首先从 Play 商店下载最新版本,如图所示。
我找到了一个名为 Upgrader 的包,但这只是一个提示。如图所示,它未链接到 Play 商店。
编辑
根据 Maadhav Sharma 的建议,我现在正在使用 in_app_update 软件包,但它显示 没有可用的更新 。
这是我的代码:
....
class _TnPState extends State<TnP> {
ThemeBloc _themeBloc;
FirebaseMessaging _firebaseMessaging;
NotificationBloc _notificationBloc;
String _test;
@override
void initState() {
_themeBloc = ThemeBloc();
_firebaseMessaging = FirebaseMessaging();
_notificationBloc = NotificationBloc();
_firebaseMessaging.configure(
onMessage: (notification) async => _notificationBloc.yes(),
onResume: (notification) async => _notificationBloc.yes(),
onLaunch: (notification) async => _notificationBloc.yes(),
);
checkForUpdate();
super.initState();
}
Future<void> checkForUpdate() async {
InAppUpdate.checkForUpdate().then((info) {
String display = info.toString();
setState((){
_test = display;
});
});
}
@override
Widget build(BuildContext context) {
return StreamBuilder<AppTheme>(
stream: _themeBloc.themeStream,
initialData: AppTheme.Light,
builder: (context, AsyncSnapshot<AppTheme> snapshot) {
return MaterialApp(
title: 'TnP',
debugShowCheckedModeBanner: false,
theme: appThemeData[snapshot.data],
home: _test==null ?
Container() :
InAppUpdateScreen(display: _test),//SplashScreen(),
);
},
);
}
}
InAppUpdateScreen
只显示文本。
Play 商店中的应用程序显示更新可用:
但是通过 playstore 安装的旧版本的应用程序没有显示更新:
知道如何解决这个问题吗?
有你想要的包裹:
https://pub.dev/packages/in_app_update
Android
此插件集成了官方 Android API 以在 2019 年发布的应用更新中执行:https://developer.android.com/guide/app-bundle/in-app-updates
iOS
iOS 不提供此类功能。您可能想查看例如https://pub.dev/packages/upgrader。如果您在 iOS 设备上调用上述方法,您将 运行 进入未实现的异常。
谢谢...
可能不是问题的实际答案,但如果有人正在寻找一种易于集成的内置解决方案,它适用于 Android、iOS 并且与语言、框架无关。您可以使用 https://appupgrade.dev/ 服务强制更新您的移动应用程序。您需要在应用程序升级服务中为要更新的应用程序版本创建新版本,并且select您是要强制执行还是只是想让用户知道新版本可用。
在此之后,您需要从您的应用中调用应用升级 api,并提供所需的详细信息,例如您的应用版本、平台、环境和应用名称。 API 会 return 为您提供有关此应用程序是否需要更新的详细信息。根据响应,您可以在 app.You 中显示弹出窗口,可以在应用程序启动时调用此 API 或定期检查更新。您甚至可以提供自定义消息。
API 回复:
看到响应强制更新为真。因此,通过显示弹出窗口在应用程序中进行处理。
您可以在此处找到完整的用户文档。 https://appupgrade.dev/docs
谢谢。
你可以使用这个包
https://pub.dev/packages/upgrader
像这样将整个小部件包装在 UpgradeAlert 小部件中 ->
Scaffold(
appBar: AppBar(title: Text('Upgrader Example')),
body: UpgradeAlert(
child: Center(child: Text('Your widget is here')),
)),
如果有可用更新
我希望我的应用程序的用户始终拥有最新版本。如果他们没有最新版本,它应该首先从 Play 商店下载最新版本,如图所示。
我找到了一个名为 Upgrader 的包,但这只是一个提示。如图所示,它未链接到 Play 商店。
编辑
根据 Maadhav Sharma 的建议,我现在正在使用 in_app_update 软件包,但它显示 没有可用的更新 。
这是我的代码:
....
class _TnPState extends State<TnP> {
ThemeBloc _themeBloc;
FirebaseMessaging _firebaseMessaging;
NotificationBloc _notificationBloc;
String _test;
@override
void initState() {
_themeBloc = ThemeBloc();
_firebaseMessaging = FirebaseMessaging();
_notificationBloc = NotificationBloc();
_firebaseMessaging.configure(
onMessage: (notification) async => _notificationBloc.yes(),
onResume: (notification) async => _notificationBloc.yes(),
onLaunch: (notification) async => _notificationBloc.yes(),
);
checkForUpdate();
super.initState();
}
Future<void> checkForUpdate() async {
InAppUpdate.checkForUpdate().then((info) {
String display = info.toString();
setState((){
_test = display;
});
});
}
@override
Widget build(BuildContext context) {
return StreamBuilder<AppTheme>(
stream: _themeBloc.themeStream,
initialData: AppTheme.Light,
builder: (context, AsyncSnapshot<AppTheme> snapshot) {
return MaterialApp(
title: 'TnP',
debugShowCheckedModeBanner: false,
theme: appThemeData[snapshot.data],
home: _test==null ?
Container() :
InAppUpdateScreen(display: _test),//SplashScreen(),
);
},
);
}
}
InAppUpdateScreen
只显示文本。
Play 商店中的应用程序显示更新可用:
但是通过 playstore 安装的旧版本的应用程序没有显示更新:
知道如何解决这个问题吗?
有你想要的包裹:
https://pub.dev/packages/in_app_update
Android
此插件集成了官方 Android API 以在 2019 年发布的应用更新中执行:https://developer.android.com/guide/app-bundle/in-app-updates
iOS
iOS 不提供此类功能。您可能想查看例如https://pub.dev/packages/upgrader。如果您在 iOS 设备上调用上述方法,您将 运行 进入未实现的异常。
谢谢...
可能不是问题的实际答案,但如果有人正在寻找一种易于集成的内置解决方案,它适用于 Android、iOS 并且与语言、框架无关。您可以使用 https://appupgrade.dev/ 服务强制更新您的移动应用程序。您需要在应用程序升级服务中为要更新的应用程序版本创建新版本,并且select您是要强制执行还是只是想让用户知道新版本可用。
在此之后,您需要从您的应用中调用应用升级 api,并提供所需的详细信息,例如您的应用版本、平台、环境和应用名称。 API 会 return 为您提供有关此应用程序是否需要更新的详细信息。根据响应,您可以在 app.You 中显示弹出窗口,可以在应用程序启动时调用此 API 或定期检查更新。您甚至可以提供自定义消息。 API 回复:
看到响应强制更新为真。因此,通过显示弹出窗口在应用程序中进行处理。
您可以在此处找到完整的用户文档。 https://appupgrade.dev/docs
谢谢。
你可以使用这个包
https://pub.dev/packages/upgrader
像这样将整个小部件包装在 UpgradeAlert 小部件中 ->
Scaffold(
appBar: AppBar(title: Text('Upgrader Example')),
body: UpgradeAlert(
child: Center(child: Text('Your widget is here')),
)),
如果有可用更新