You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter项目中集成upgrader包实现Play商店版本更新提示

集成upgrader包实现Play商店版本更新提醒

以下是完整的集成步骤,适配你现有代码结构:

1. 添加依赖

在项目的pubspec.yaml文件中添加upgrader包依赖:

dependencies:
  upgrader: ^[当前最新版本号]

执行flutter pub get安装依赖。

2. 导入包

在main.dart顶部导入upgrader:

import 'package:upgrader/upgrader.dart';

3. 集成到Widget树

由于你的应用使用initialRoute配置路由,推荐将UpgradeAlert作为初始页面的父组件,或者包裹整个MaterialApp:

方式一:包裹初始路由页面

修改路由表中的根路由:

routes: <String, WidgetBuilder>{
  '/notas_mesa_entrada_page': (BuildContext context) => MesaEntradaPage(),
  '/': (BuildContext context) => UpgradeAlert(
        child: SideBarMenuPage3(),
      ),
  'reclamos': (BuildContext context) => ReclamosPage(),
  'pagosyfacturacion': (BuildContext context) => PagoyFacturacionPage2(),
  'cortesProgramados': (BuildContext context) => CortesProgramadosPage2(),
  'oficinasHabilitadas': (BuildContext context) => OficinasHabilitadasPage(),
  'cuadroTarifario': (BuildContext context) => const CuadroTarifarioPage(),
  'menu_page': (BuildContext context) => Menu2Page(),
  'titularidad_page': (BuildContext context) => CambioTitularidadPage(),
},

方式二:包裹整个MaterialApp

如果你希望在所有页面都能触发更新提示,可以直接包裹MaterialApp:

return ChangeNotifierProvider(
  create: (context) => ProviderOficinaVirtual(),
  child: MediaQuery(
    data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
    child: UpgradeAlert(
      child: MaterialApp(
        navigatorKey: navigatorKey,
        debugShowCheckedModeBanner: false,
        initialRoute: '/',
        routes: <String, WidgetBuilder>{
          // 保持原路由配置不变
          '/notas_mesa_entrada_page': (BuildContext context) => MesaEntradaPage(),
          '/': (BuildContext context) => SideBarMenuPage3(),
          'reclamos': (BuildContext context) => ReclamosPage(),
          'pagosyfacturacion': (BuildContext context) => PagoyFacturacionPage2(),
          'cortesProgramados': (BuildContext context) => CortesProgramadosPage2(),
          'oficinasHabilitadas': (BuildContext context) => OficinasHabilitadasPage(),
          'cuadroTarifario': (BuildContext context) => const CuadroTarifarioPage(),
          'menu_page': (BuildContext context) => Menu2Page(),
          'titularidad_page': (BuildContext context) => CambioTitularidadPage(),
        },
      ),
    ),
  ),
);

4. 自定义配置(可选)

你可以根据需求自定义更新提示的行为和样式:

UpgradeAlert(
  upgrader: Upgrader(
    canSkip: false, // 是否允许跳过更新(设置为true则强制更新)
    frequency: Duration(days: 1), // 检查更新的频率
    dialogTitle: '发现新版本',
    dialogMessage: '请更新到最新版本以获得更好的体验',
    updateButtonText: '立即更新',
    skipButtonText: '稍后再说',
    // 若自动检测有问题,可手动指定Play商店应用链接
    appcastURL: 'https://play.google.com/store/apps/details?id=你的应用包名',
  ),
  child: SideBarMenuPage3(),
)

5. 测试功能

开发阶段可以开启测试模式,强制显示更新提示:

UpgradeAlert(
  upgrader: Upgrader(
    debugDisplayAlways: true, // 始终显示更新弹窗
    debugLogging: true, // 打印调试日志
  ),
  child: SideBarMenuPage3(),
)

内容的提问来源于stack exchange,提问作者Agustin Coronel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 09:07:35