Flutter应用版本升级管理插件firebase_upgrader的使用

Flutter应用版本升级管理插件firebase_upgrader的使用

firebase_upgrader 是一个用于使用 Firebase 实时数据库处理可选和强制应用程序更新的 Flutter 包。

目录

安装

pubspec.yaml 文件中添加 firebase_upgrader

dependencies:
  firebase_upgrader: ^1.0.3

运行 flutter pub get 来安装包。

使用

1. 初始化

确保在 main() 函数中初始化:

void main() {
  WidgetsFlutterBinding.ensureInitialized();  // 添加此行
  runApp(const MyApp());
}

2. 配置 MaterialApp

MaterialApp 中添加以下属性:

navigatorKey: FirebaseUpgrader.navigationKey,
builder: FirebaseUpgrader.builder,

3. 设置最小版本和当前版本

在 Firebase 实时数据库中指定最小版本和当前版本:

{
  "features": {
    "minVersion": "1.23.45",
    "currentVersion": "1.23.45",
    "storeLink": "your.store.link",
  }
}

你也可以根据不同的平台设置不同的版本:

{
  "features": {
    "minVersion": {
      "ios": "1.23.45",
      "android": "1.23.45",
    },
    "currentVersion": {
      "ios": "1.23.45",
      "android": "1.23.45",
    },
    "storeLink": {
      "ios": "your.store.link",
      "android": "your.store.link",
    }
  }
}

简单示例

import 'package:firebase_upgrader/firebase_upgrader.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorKey: FirebaseUpgrader.navigationKey,
      builder: FirebaseUpgrader.builder,
      // 其他 MaterialApp 属性...
    );
  }
}

自定义示例

你可以通过向 FirebaseUpgrader 提供可选参数来自定义其外观和行为:

import 'package:flutter/material.dart';
import 'package:firebase_upgrader/firebase_upgrader.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorKey: FirebaseUpgrader.navigationKey,
      builder: (context, child) {
        return FirebaseUpgrader(
          child: child,
          optionalTitle: '新更新可用',
          optionalMessage: '发现新版本,是否现在更新?',
          optionalButtonText: '立即更新',
          forceTitle: '强制升级',
          forceMessage: '当前版本已不支持,必须升级到最新版本。',
          forceButtonText: '升级',
          logo: Image.asset('assets/logo.png'), // 添加你的logo图像资源
          appStoreLink: 'https://apps.apple.com/us/app/your-app-name/id123456789', // 添加你的App Store链接
          playStoreLink: 'https://play.google.com/store/apps/details?id=com.example.app',
          optionalUpgradeScreen: someWidegt,
          forceUpgradeScreen: anotherWidget,
        );
      },
      home: Scaffold(
        appBar: AppBar(
          title: Text('自定义 Firebase Upgrader'),
        ),
        body: Center(
          child: Text('欢迎来到自定义的应用!'),
        ),
      ),
    );
  }
}

更多关于Flutter应用版本升级管理插件firebase_upgrader的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter应用版本升级管理插件firebase_upgrader的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


firebase_upgrader 是一个用于 Flutter 应用的版本升级管理插件,它通过与 Firebase Remote Config 结合,帮助开发者实现应用的版本检查和升级提示功能。使用这个插件,你可以在应用中轻松实现强制升级、可选升级等功能。

安装 firebase_upgrader

首先,你需要在 pubspec.yaml 文件中添加 firebase_upgrader 依赖:

dependencies:
  flutter:
    sdk: flutter
  firebase_upgrader: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

配置 Firebase

  1. 创建 Firebase 项目:如果你还没有 Firebase 项目,请先在 Firebase 控制台 中创建一个项目。

  2. 添加 Firebase 到 Flutter 项目

    • 按照 Firebase 官方文档的步骤,将 Firebase 添加到你的 Flutter 项目中。通常需要下载 google-services.json(Android)和 GoogleService-Info.plist(iOS)文件,并将它们放到项目的相应目录中。

    • pubspec.yaml 中添加 Firebase Core 插件:

      dependencies:
        flutter:
          sdk: flutter
        firebase_core: ^latest_version
      
    • main.dart 中初始化 Firebase:

      import 'package:firebase_core/firebase_core.dart';
      
      void main() async {
        WidgetsFlutterBinding.ensureInitialized();
        await Firebase.initializeApp();
        runApp(MyApp());
      }
      
  3. 配置 Firebase Remote Config

    • 在 Firebase 控制台中,启用 Remote Config 服务。
    • 添加以下参数到 Remote Config 中:
      • app_version:当前应用的最新版本号。
      • force_upgrade:布尔值,表示是否需要强制升级。

使用 firebase_upgrader

在你的应用中初始化 firebase_upgrader,并在适当的地方调用版本检查逻辑。

import 'package:flutter/material.dart';
import 'package:firebase_upgrader/firebase_upgrader.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Firebase Upgrader Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 初始化 FirebaseUpgrader
            final upgrader = FirebaseUpgrader(
              appVersion: '1.0.0',  // 当前应用版本
              forceUpgrade: false,  // 是否强制升级
            );

            // 检查版本更新
            final shouldUpgrade = await upgrader.checkForUpdate();

            if (shouldUpgrade) {
              // 如果需要升级,显示升级对话框
              upgrader.showUpdateDialog(context);
            } else {
              // 如果不需要升级,继续正常流程
              ScaffoldMessenger.of(context).showSnackBar(
                SnackBar(content: Text('应用已是最新版本')),
              );
            }
          },
          child: Text('检查更新'),
        ),
      ),
    );
  }
}

Remote Config 参数示例

在 Firebase Remote Config 中,你可以设置以下参数:

  • app_version1.1.0(最新版本号)
  • force_upgradetruefalse(是否强制升级)

自定义升级对话框

你可以通过 showUpdateDialog 方法自定义升级对话框的样式和行为。例如:

upgrader.showUpdateDialog(
  context,
  title: '新版本可用',
  message: '请更新到最新版本以获得更好的体验。',
  updateButtonText: '立即更新',
  laterButtonText: '稍后再说',
  onUpdate: () {
    // 用户点击“立即更新”时的操作
    // 例如:打开应用商店
  },
  onLater: () {
    // 用户点击“稍后再说”时的操作
  },
);

强制升级

如果你想实现强制升级,可以将 forceUpgrade 设置为 true,并且用户将无法跳过升级。

final upgrader = FirebaseUpgrader(
  appVersion: '1.0.0',
  forceUpgrade: true,
);
回到顶部