Flutter应用更新提示插件simple_update_dialog的使用

发布于 1周前 作者 caililin 来自 Flutter

Flutter应用更新提示插件simple_update_dialog的使用

simple_update_dialog 是一个简单的包,用于显示平台特定的对话框,以提示用户更新应用程序。

使用方法

要使用此插件,请在 pubspec.yaml 文件中添加 simple_update_dialog 作为依赖项。

截图

Android截图 iOS截图

示例代码

以下是一个完整的示例代码,展示了如何使用 simple_update_dialog 插件来提示用户更新应用。这个示例包括了获取当前应用版本的功能,并根据不同的平台(Android 和 iOS)显示相应的更新对话框。

完整示例代码

import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:simple_update_dialog/simple_update_dialog.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // 应用的主题配置
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('应用更新提示示例'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 获取当前应用的版本信息
            PackageInfo packageInfo = await PackageInfo.fromPlatform();
            
            // 检查上下文是否有效
            if (context.mounted) {
              // 显示更新对话框
              SimpleUpdateDialog.showUpdateDialog(
                context: context,
                isForceUpdate: false, // 是否强制更新
                dialogConfig: DialogConfig(
                  appStoreUrl: 'https://flutter.dev/', // iOS 应用商店链接
                  playStoreUrl: 'https://flutter.dev/', // Android 应用商店链接
                  currentVersion: packageInfo.version, // 当前应用版本
                  latestAndroidVersion: '1.0.1', // 最新的 Android 版本
                  latestIOSVersion: '1.0.1', // 最新的 iOS 版本
                  minAndroidAppVerAllowed: '1.0.0', // 允许的最低 Android 版本
                  minIOSAppVerAllowed: '1.0.0', // 允许的最低 iOS 版本
                ),
              );
            }
          },
          child: const Text("显示更新对话框"),
        ),
      ),
    );
  }
}

更多关于Flutter应用更新提示插件simple_update_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter应用更新提示插件simple_update_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter应用中使用simple_update_dialog插件来实现应用更新提示的示例代码。这个插件可以很方便地在应用中显示一个更新对话框,提示用户有新版本的应用可用。

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

dependencies:
  flutter:
    sdk: flutter
  simple_update_dialog: ^latest_version  # 请替换为实际的最新版本号

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

接下来,你可以在你的Flutter应用中使用SimpleUpdateDialog。下面是一个完整的示例代码,展示了如何初始化插件并在应用启动时检查是否有新版本:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  void initState() {
    super.initState();
    // 在应用启动时检查更新
    checkForUpdates();
  }

  void checkForUpdates() async {
    // 模拟最新版本号,你可以替换为从服务器获取的最新版本号
    final String latestVersion = "2.0.0";
    final PackageInfo packageInfo = await PackageInfo.fromPlatform();
    
    // 检查当前版本是否低于最新版本
    if (packageInfo.versionName.compareTo(latestVersion) < 0) {
      // 显示更新对话框
      SimpleUpdateDialog.showUpdateDialog(
        context: context,
        versionName: latestVersion,
        description: "这次更新包含了新的功能和修复了一些错误。",
        mandatoryUpdate: false,  // 是否为强制更新
        ignore: () {
          // 用户选择忽略更新
          print("用户选择忽略更新");
        },
        later: () {
          // 用户选择稍后更新
          print("用户选择稍后更新");
        },
        update: () async {
          // 用户选择立即更新,可以跳转到应用商店页面
          // 这里只是示例,实际应用中你需要实现跳转到应用商店的逻辑
          print("用户选择立即更新");
          // 例如,跳转到Google Play商店或App Store
          // await SimpleUpdateDialog.openStore(context);
        },
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Flutter Update Dialog Demo"),
      ),
      body: Center(
        child: Text("检查应用更新"),
      ),
    );
  }
}

在这个示例中,我们做了以下事情:

  1. pubspec.yaml文件中添加了simple_update_dialog依赖。
  2. MyApphome属性中设置了MyHomePage
  3. MyHomePageinitState方法中调用了checkForUpdates函数,该函数检查当前应用的版本是否低于模拟的最新版本号。
  4. 如果当前版本低于最新版本,则显示更新对话框,包含版本信息、更新描述以及用户的选项(忽略、稍后更新、立即更新)。

请注意,这个示例中的latestVersion是硬编码的,实际应用中,你需要从服务器或其他地方获取最新的版本号。此外,对于立即更新的选项,你可能需要实现跳转到应用商店的逻辑,这里只是简单地打印了一个信息。

回到顶部