【FlutterUtilCode】Flutter工具篇之AppUtils

1,228 阅读2分钟

前言

FlutterUtilCode 是一个 Flutter 工具类集合插件,封装了常用的工具类函数,方便开发者调用。

本篇是 Flutter工具篇之AppUtils,系列文章内容主要介绍插件中工具类的功能、用法和代码实现等,感兴趣的同学可以持续关注。

FlutterUtilCode 系列(六)—— Flutter工具篇之AppUtils

FlutterUtilCode 系列(五)—— Flutter工具篇之PathUtils

FlutterUtilCode 系列(四)—— Flutter工具篇之DeviceUtils

FlutterUtilCode 系列(三)—— Flutter工具篇之UuidUtils

FlutterUtilCode 系列(二)—— Flutter工具篇之ToastUtils

FlutterUtilCode 系列(一)—— Flutter工具篇之LogUtils、SharedPerfsUtils

App工具类-AppUtils

在 App 开发中,获取自己应用的名称、版本号、版本名、包名等信息是非常普遍的需求。在 Android 开发中,一般我们会通过调用系统API PackageManager 来获取这些信息。但 Flutter 开发中,由于官方没有提供相关API,因此我们需要借助第三方插件 package_info_plus 来实现。

package_info_plus 也是一个广受开发者欢迎的插件,其 LIKES 达到 1.5K,目前版本更新到 v4.0.2。该插件不仅集成了各个平台获取应用相关信息的功能,其内部还对不同的系统版本获取方式做了兼容处理(没错,说的就是Android),可谓是非常省心~

WX20230620-200802.png

我们今天的 App工具类 AppUtils 正是基于该插件来实现。

一、代码实现

由于 package_info_plus 插件已经封装的非常完整,我们的 AppUtils 工具类仅仅只是调用了该插件方法,没有做其他额外的处理。

/// App名称
  static Future<String> getAppName() async {
    PackageInfo packageInfo = await PackageInfo.fromPlatform();
    return packageInfo.appName;
  }

  /// 包名
  static Future<String> getPackageName() async {
    PackageInfo packageInfo = await PackageInfo.fromPlatform();
    return packageInfo.packageName;
  }

  /// 版本名
  static Future<String> getVersionName() async {
    PackageInfo packageInfo = await PackageInfo.fromPlatform();
    return packageInfo.version;
  }

  /// 版本号
  static Future<String> getVersionNumber() async {
    PackageInfo packageInfo = await PackageInfo.fromPlatform();
    return packageInfo.buildNumber;
  }

  /// 获取App构建签名
  /// 在 iOS 上为空字符串,在 Android 上为密钥签名(十六进制)
  static Future<String> getBuildSignature() async {
    PackageInfo packageInfo = await PackageInfo.fromPlatform();
    return packageInfo.buildSignature;
  }

  /// 获取App安装商店
  /// 若是通过应用商店安装的应用,返回应用商店的名称,否则返回空字符串
  static Future<String> getInstallerStore() async {
    PackageInfo packageInfo = await PackageInfo.fromPlatform();
    return packageInfo.installerStore ?? '';
  }

二、使用案例

AppUtils 使用起来也是非常简单:

// App名称
await AppUtils.getAppName()
// App包名
await AppUtils.getPackageName()
// App版本名称
await AppUtils.getVersionName()
// App版本号
await AppUtils.getVersionNumber()
// App构建签名,在iOS上为空字符串,在Android上为密钥签名(十六进制)
await AppUtils.getBuildSignature()
// App安装商店,若是通过应用商店安装的应用,返回应用商店的名称,否则返回空字符串
await AppUtils.getInstallerStore()

运行结果:

WX20230626-180018@2x.png

结语

好了,今天的工具类整理文章就到这里,目前插件已发布到 Pub 中,欢迎大家体验。

如果觉得这篇文章对你有所帮助的话,不要忘记一键三连哦,大家的点赞是我更新的动力🥰。

Pub: flutter_util_code

项目源码:FlutterUtilCode

使用案例:Example