Flutter应用版本更新插件app_version_update_lite的使用

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

Flutter应用版本更新插件 app_version_update_lite 的使用

app_version_update_lite 是一个用于检测并提示用户进行应用版本更新的Flutter插件。它能够比较本地应用版本与商店中最新版本的区别,从而决定是否需要更新。

主要功能

  • 比较本地应用版本和应用商店中的版本。
  • 支持Android和iOS平台。
  • 提供可选的自定义更新提示对话框。

开始使用

安装插件

首先,在你的Flutter项目中添加 app_version_update_lite 依赖:

$ flutter pub add app_version_update_lite

或者在 pubspec.yaml 文件中手动添加:

dependencies:
  app_version_update_lite: <latest>

注意:为了测试此插件的功能,你需要确保应用已经在相应的应用商店上线。如果尚未上线,可以通过手动修改 pubspec.yaml 中的 version 字段来模拟较低的版本号。

权限设置

Android权限

AndroidManifest.xml 文件中添加网络访问权限:

<uses-permission android:name="android.permission.INTERNET" />

iOS权限

Info.plist 文件中添加以下配置以允许任意加载:

<key>NSAppTransportSecurity</key>
<dict>
   <key>NSAllowsArbitraryLoads</key><true/>
</dict>

使用示例

下面是一个简单的示例,展示了如何检查是否有可用的应用更新,并在有更新时显示一条消息。

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

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'app_version_update_lite_example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'app_version_update_lite_example'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  [@override](/user/override)
  void initState() {
    super.initState();
    _verifyVersion();
  }

  void _verifyVersion() async {
    await AppVersionUpdate.checkForUpdates(
      appleId: '1459706595', // 如果为空,则使用包名
      playStoreId: 'com.byebnk.app', // 如果为空,则使用包名
      country: 'br', // 如果为空,默认为 'us'
    ).then((result) async {
      if (result.canUpdate!) {
        print("You can update your app");
        // 在此处可以显示自定义对话框
      }
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(child: Text('Check the console for updates.')),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中使用app_version_update_lite插件来实现应用版本更新功能的代码示例。

首先,确保你已经在你的Flutter项目中添加了app_version_update_lite插件。你可以在你的pubspec.yaml文件中添加以下依赖项:

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

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

接下来,在你的Flutter应用中,你可以按照以下步骤使用app_version_update_lite插件:

  1. 初始化插件并检查版本更新

    在你的主Dart文件(通常是main.dart)中,你可以初始化插件并检查是否有新版本的应用可用。

    import 'package:flutter/material.dart';
    import 'package:app_version_update_lite/app_version_update_lite.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();
        _checkAppVersionUpdate();
      }
    
      void _checkAppVersionUpdate() async {
        final AppVersionUpdate appVersionUpdate = AppVersionUpdate();
    
        // 设置新版本的信息(这通常是从你的服务器获取的)
        final Map<String, dynamic> newVersion = {
          "versionCode": 2, // 新版本的版本号
          "versionName": "1.1.0", // 新版本的版本名
          "updateContent": "修复了一些bug并增加了新功能", // 更新内容
          "apkUrl": "https://example.com/your_app_new_version.apk", // 新版本APK的下载地址
        };
    
        // 检查版本更新
        await appVersionUpdate.checkAppVersion(
          currentVersionCode: 1, // 当前应用的版本号
          currentVersionName: "1.0.0", // 当前应用的版本名
          newVersion: newVersion,
          mandatoryUpdate: false, // 是否为强制更新
          downloadProgressCallback: (progress) {
            // 下载进度回调
            print("Download progress: $progress");
          },
          onUpdate: () {
            // 用户点击更新按钮时的回调
            print("User clicked to update the app.");
          },
          onCancel: () {
            // 用户取消更新时的回调
            print("User cancelled the update.");
          },
          onNoUpdate: () {
            // 没有新版本更新时的回调
            print("No new version available.");
          },
        );
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('App Version Update Demo'),
          ),
          body: Center(
            child: Text('Check the console for version update information.'),
          ),
        );
      }
    }
    
  2. 处理版本更新逻辑

    在上面的代码中,我们定义了一个_checkAppVersionUpdate方法,该方法使用AppVersionUpdate插件来检查新版本。你需要根据你的实际需求来设置新版本的信息(如版本号、版本名、更新内容和APK下载地址)。

    插件会处理用户交互(如显示更新对话框、下载进度显示等),并提供回调函数来处理用户的不同操作(如点击更新、取消更新等)。

请注意,上述代码示例中的新版本信息(如版本号、版本名、APK下载地址等)是硬编码的。在实际应用中,你应该从服务器获取这些信息,以便动态地检查版本更新。

此外,app_version_update_lite插件可能提供了更多的配置选项和功能,请参考其官方文档以获取更多信息。

回到顶部