Flutter版本检查插件version_check的使用

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

Flutter版本检查插件version_check的使用

version_check是一个用于检查iOS、Android和Mac应用商店中应用版本并提供更新提示的Flutter插件。以下是该插件的基本使用方法及一个完整的示例Demo。

使用方法

首先,你需要在你的项目中添加对version_check插件的依赖。打开pubspec.yaml文件,并在dependencies部分添加:

dependencies:
  version_check: ^最新版本号

然后,在你的Dart代码中导入并使用它:

import 'package:version_check/version_check.dart';

接下来,你可以创建一个VersionCheck实例,并调用其checkVersion方法来检查当前应用版本与商店中的版本是否一致。

示例代码

以下是一个完整的示例,展示了如何集成version_check到你的Flutter应用中。

import 'dart:io';

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

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

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

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

  final String? title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String? version = '';
  String? storeVersion = '';
  String? storeUrl = '';
  String? packageName = '';

  final versionCheck = VersionCheck(
    packageName: Platform.isIOS ? 'com.tachyonfactory.iconFinder' : 'com.tachyonfactory.icon_finder',
    packageVersion: '1.0.1', // 设置为你应用的实际版本号
    showUpdateDialog: customShowUpdateDialog,
    country: 'kr', // 根据需要调整国家代码
  );

  Future<void> checkVersion() async {
    await versionCheck.checkVersion(context);

    setState(() {
      version = versionCheck.packageVersion;
      packageName = versionCheck.packageName;
      storeVersion = versionCheck.storeVersion;
      storeUrl = versionCheck.storeUrl;
    });
  }

  @override
  void initState() {
    super.initState();
    checkVersion();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title!),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text('packageVersion = $version'),
            Text('storeVersion = $storeVersion'),
            Text('storeUrl = $storeUrl'),
            Text('packageName = $packageName'),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: const Icon(Icons.store),
        onPressed: () async {
          await versionCheck.launchStore();
        },
      ),
    );
  }
}

void customShowUpdateDialog(BuildContext context, VersionCheck versionCheck) {
  showDialog(
    context: context,
    barrierDismissible: false,
    builder: (context) {
      return AlertDialog(
        title: const Text('NEW Update Available'),
        content: SingleChildScrollView(
          child: ListBody(
            children: [
              Text('Do you REALLY want to update to ${versionCheck.storeVersion}?'),
              Text('(current version ${versionCheck.packageVersion})'),
            ],
          ),
        ),
        actions: [
          TextButton(
            child: const Text('Update'),
            onPressed: () async {
              await versionCheck.launchStore();
            },
          ),
          TextButton(
            child: const Text('Close'),
            onPressed: () {
              Navigator.of(context).pop();
            },
          ),
        ],
      );
    },
  );
}

这个示例包括了一个自定义的更新对话框customShowUpdateDialog,当有新版本可用时会显示给用户。用户可以选择立即更新或关闭对话框稍后处理。


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

1 回复

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


当然,以下是如何在Flutter项目中使用version_check插件来进行版本检查的示例代码。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  version_check: ^0.4.0  # 请检查最新版本号并替换

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

2. 导入插件

在你的Dart文件中(例如main.dart),导入version_check插件:

import 'package:version_check/version_check.dart';

3. 检查版本

接下来,你可以使用VersionCheck类来检查当前应用版本与Play Store或App Store上的版本是否匹配。

以下是一个简单的例子,展示了如何在启动时检查版本并显示一个对话框(如果新版本可用):

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Version Check Example'),
        ),
        body: VersionChecker(),
      ),
    );
  }
}

class VersionChecker extends StatefulWidget {
  @override
  _VersionCheckerState createState() => _VersionCheckerState();
}

class _VersionCheckerState extends State<VersionChecker> {
  Future<void> _checkVersion() async {
    try {
      // 检查Play Store或App Store上的版本
      bool isUpdateAvailable = await VersionCheck().needUpdate;

      if (isUpdateAvailable) {
        // 显示一个对话框提示用户更新
        showDialog(
          context: context,
          builder: (BuildContext context) {
            return AlertDialog(
              title: Text('Update Available'),
              content: Text('A new version of the app is available. Please update.'),
              actions: <Widget>[
                TextButton(
                  onPressed: () {
                    // 打开Play Store或App Store的应用页面
                    if (await VersionCheck().isAndroid) {
                      // Android
                      VersionCheck().openAppPageInStore(androidId: 'your.package.id');
                    } else {
                      // iOS
                      VersionCheck().openAppPageInStore(iosId: 'your.bundle.id');
                    }
                    Navigator.of(context).pop();
                  },
                  child: Text('Update Now'),
                ),
                TextButton(
                  onPressed: () {
                    Navigator.of(context).pop();
                  },
                  child: Text('Later'),
                ),
              ],
            );
          },
        );
      }
    } catch (e) {
      // 处理异常,例如网络错误
      print('Error checking for updates: $e');
    }
  }

  @override
  void initState() {
    super.initState();
    // 在应用启动时检查版本
    _checkVersion();
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Text('Checking for updates...'),
    );
  }
}

注意事项

  1. 替换ID:在openAppPageInStore方法中,确保替换your.package.idyour.bundle.id为你的实际应用ID。
  2. 权限:对于Android,你可能需要在AndroidManifest.xml中添加网络权限,因为版本检查涉及网络请求。
  3. 测试:在实际部署之前,确保在开发和生产环境中测试版本检查功能。

这样,你就可以在Flutter应用中使用version_check插件来检查版本并提示用户更新了。

回到顶部