前言
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),可谓是非常省心~
我们今天的 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()
运行结果:
结语
好了,今天的工具类整理文章就到这里,目前插件已发布到 Pub 中,欢迎大家体验。
如果觉得这篇文章对你有所帮助的话,不要忘记一键三连哦,大家的点赞是我更新的动力🥰。
Pub: flutter_util_code
项目源码:FlutterUtilCode
使用案例:Example