Flutter应用版本检查插件flutter_app_version_checker_bis的使用

Flutter应用版本检查插件flutter_app_version_checker_bis的使用

本包用于检查您的应用是否在Google Play商店或Apple App Store中有新版本。您还可以检查其他应用在Google Play商店或Apple App Store中的最新版本。

安装

pubspec.yaml文件中添加flutter_app_version_checker_bis依赖:

dependencies:
  flutter_app_version_checker_bis: any # 或者使用最新的版本号

使用

首先,创建一个AppVersionChecker实例,并在initState方法中调用checkUpdate方法来检查更新。

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

final _checker = AppVersionChecker();

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();
    checkVersion();
  }

  void checkVersion() async {
    _checker.checkUpdate().then((value) {
      print(value.canUpdate); // 如果有更新返回true
      print(value.currentVersion); // 返回当前应用版本
      print(value.newVersion); // 返回新的应用版本
      print(value.appURL); // 返回应用下载链接
      print(value.errorMessage); // 如果有错误信息则返回错误信息,否则返回null
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('APP版本检查器'),
        ),
        body: Center(
          child: Text("请点击下方按钮检查更新"),
        ),
      ),
    );
  }
}

或者指定应用ID和当前版本

final _checker = AppVersionChecker(
  appId: "specify the app id (可选)",
  currentVersion: "specify the current version (可选)",
);

在ApkPure商店上使用

final _checker = AppVersionChecker(
  appId: "com.vanced.android.youtube",
  androidStore: AndroidStore.apkPure,
);

示例代码

以下是一个完整的示例代码,展示了如何在Flutter应用中使用flutter_app_version_checker_bis插件来检查更新。

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

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

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final _youtubeChecker = AppVersionChecker(
    appId: "com.vanced.android.youtube",
    androidStore: AndroidStore.apkPure,
  );
  final _snapChatChecker = AppVersionChecker(appId: "com.snapchat.android");
  String? snapValue;
  String? youtubeValue;

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

  void checkVersion() async {
    await Future.wait([
      _snapChatChecker
          .checkUpdate()
          .then((value) => snapValue = value.toString()),
      _youtubeChecker
          .checkUpdate()
          .then((value) => youtubeValue = value.toString()),
    ]);

    setState(() {});
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('APP版本检查器'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(12.0),
          child: ListView(
            children: [
              const SizedBox(height: 25.0),
              const Text(
                "Snapchat: (Play Store)",
                style: TextStyle(fontWeight: FontWeight.bold),
              ),
              const SizedBox(height: 10.0),
              Text(
                snapValue ?? '加载中 ...',
              ),
              const SizedBox(height: 50.0),
              const Text(
                "YouTube Vanced (ApkPure):",
                style: TextStyle(fontWeight: FontWeight.bold),
              ),
              const SizedBox(height: 10.0),
              Text(
                youtubeValue ?? "加载中 ...",
              ),
            ],
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


flutter_app_version_checker_bis 是一个用于检查应用版本更新的 Flutter 插件。它可以帮助你检测应用是否有新版本发布,并提示用户进行更新。以下是如何使用这个插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  flutter_app_version_checker_bis: ^0.1.0  # 请根据实际情况使用最新版本

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

2. 基本用法

在你的 Flutter 应用中使用 flutter_app_version_checker_bis 插件的基本步骤如下:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: VersionCheckPage(),
    );
  }
}

class VersionCheckPage extends StatefulWidget {
  [@override](/user/override)
  _VersionCheckPageState createState() => _VersionCheckPageState();
}

class _VersionCheckPageState extends State<VersionCheckPage> {
  String _versionStatus = 'Checking...';

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

  Future<void> checkAppVersion() async {
    try {
      final versionStatus = await FlutterAppVersionCheckerBis.checkVersion();
      setState(() {
        _versionStatus = versionStatus;
      });

      if (versionStatus == 'update_available') {
        // 如果有更新,提示用户
        _showUpdateDialog();
      }
    } catch (e) {
      setState(() {
        _versionStatus = 'Error: $e';
      });
    }
  }

  void _showUpdateDialog() {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text('Update Available'),
          content: Text('A new version of the app is available. Please update to the latest version.'),
          actions: <Widget>[
            TextButton(
              child: Text('Update'),
              onPressed: () {
                // 打开应用商店或浏览器进行更新
                FlutterAppVersionCheckerBis.launchStore();
                Navigator.of(context).pop();
              },
            ),
            TextButton(
              child: Text('Later'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('App Version Checker'),
      ),
      body: Center(
        child: Text(_versionStatus),
      ),
    );
  }
}
回到顶部