如何使用 in_app_update 强制用户从 Flutter 中的 Play 商店更新应用

Posted

技术标签:

【中文标题】如何使用 in_app_update 强制用户从 Flutter 中的 Play 商店更新应用【英文标题】:How to force users to update app from play store in Flutter using in_app_update 【发布时间】:2020-09-19 13:50:09 【问题描述】:

我希望我的应用的用户始终拥有最新版本。如果他们没有最新版本,它应该首先从 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 只显示文本。 应用商店显示更新可用:


但是通过 Playstore 安装的旧版本应用没有显示更新:


知道如何解决这个问题吗?

【问题讨论】:

我不知道如何,但第二天它开始工作了!我猜可能是 Playstore 出了问题。 你能分享一下它的完整代码吗?我也对强制更新应用程序感到困扰。它没有给我任何可用的更新。 除非您在我的应用和游戏部分看到可用更新,否则它不会检测到更新。 【参考方案1】:

有一个你想要的包: https://pub.dev/packages/in_app_update

Android 此插件集成了官方 android API 以在 2019 年发布的应用更新中执行:https://developer.android.com/guide/app-bundle/in-app-updatesiOS ios 不提供这样的功能。您可能想研究例如https://pub.dev/packages/upgrader。如果您在 iOS 设备上调用上述方法,您将遇到未实现的异常。

谢谢...

【讨论】:

感谢您的建议,但现在我在使用 in_app_update 时遇到了问题。我已经编辑了这个问题。你能帮忙吗? 我不知道,但可能是由于内部测试版。无论如何acc。对我来说,你应该将这个问题作为插件回购中的一个问题提出。

以上是关于如何使用 in_app_update 强制用户从 Flutter 中的 Play 商店更新应用的主要内容,如果未能解决你的问题,请参考以下文章

如何强制用户从下拉列表和按钮中选择一个值以启用保存按钮?

如何强制 div 始终可滚动?

iPhone-X - 如何强制用户滑动两次主页指示器进入主屏幕

Kendo AutoComplete - 强制用户做出有效选择

如何使用 IGListKit 强制重新加载所有部分?

强制注销所有在线用户中的特定用户