如何在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
相关产品推荐
相关产品推荐

