第三百四十二回

2024-01-03 00:29:45


我们在上一章回中介绍了"如何获取设备信息"相关的内容,本章回中将介绍如何获取App自身的信息.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在本章回中获取的App自身信息主要指App的包名称,编译版本号等信息。如果是原生开发的话,使用官方提供的接口就可以实现,但是在Flutter开发中没有类似的
接口,怎么办呢?本章回中将给大家介绍如何去获取这些App自身信息。

2. 方法与信息

2.1 获取方法

我们想要获取的App自身信息可以通过package_info_plus这个三方包来实现。该包提供了相关的接口来获取App自身信息。详细的使用方法如下:

  • 添加包的信息到yaml配置文件中,然后通过get命令获取包;
  • 创建包中提供的App类型对象,并且通过包中提供的静态方法:fromPlatform()获取到该对象;
  • App相关的信息为类的成员属性,从对象的属性中获取App自身的信息;
    上面的方法看着简单,不过还有一些内容需要注意:获取App自身信息时需要使用异步操作,不然无法获取到App自身的信息。

2.2 详细信息

App自身的信息以类的成员属性存放在类的对象中,下面是类中的成员属性,请大家参考:

  /// The app name. `CFBundleDisplayName` on iOS, `application/label` on Android.
  final String appName;

  /// The package name. `bundleIdentifier` on iOS, `getPackageName` on Android.
  final String packageName;

  /// The package version. `CFBundleShortVersionString` on iOS, `versionName` on Android.
  final String version;

  /// The build number. `CFBundleVersion` on iOS, `versionCode` on Android.
  /// Note, on iOS if an app has no buildNumber specified this property will return version
  /// Docs about CFBundleVersion: https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion
  final String buildNumber;

  /// The build signature. Empty string on iOS, signing key signature (hex) on Android.
  final String buildSignature;

  /// The installer store. Indicates through which store this application was installed.
  final String? installerStore;

3. 示例代码

  ///获取当前app的版本信息
  void getPackageInfo() async {
    var pkgInfo = await PackageInfo.fromPlatform();
    debugPrint("package info: ${pkgInfo.toString()}");
  }

上面的示例代码演示了如何获取App自身的信息,编译并且运行上面的程序可以得到下面的运行结果:

  ///打印出的信息如下:
  ///appName: fluttercookbook, buildNumber: 1, packageName: com.cookbook.flutter.fluttercookbook, version: 1.0.0

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • Flutter没有提供获取App自身信息的接口,可以通过三方包实现;
  • 获取的App信息存放在类的成员属性中,可以通过类的对象获取到;
  • 获取App自身信息需要通过异步操作来实现;
    看官们,与"如何获取App自身的信息"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

文章来源:https://blog.csdn.net/talk_8/article/details/135351541
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。