介绍
package_info_plus
是 Flutter 官方 Flutter Community Plus Plugins 系列里的一个常用插件。
它的作用是:获取应用程序自身的信息,比如 App 的名称、版本号、构建号、包名等。
常见功能:通过 package_info_plus
,你可以在运行时获取:
- appName:应用的名字(在 Android
AndroidManifest.xml
/ iOSInfo.plist
里配置的)。 - packageName:应用包名(Android 的包名 / iOS 的 bundle identifier)。
- version:应用的版本号(通常是 1.0.0)。
- buildNumber:构建号(比如 1, 2, 3,通常配合 CI/CD 用来区分不同构建)。
- buildSignature:应用签名(仅 Android)。
- installerStore:应用是从哪个商店安装的(如 Google Play)。
使用
安装
flutter pub add package_info_plus
使用示例
import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Package Info Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: const AppInfoPage(),
);
}
}
class AppInfoPage extends StatefulWidget {
const AppInfoPage({super.key});
@override
State<AppInfoPage> createState() => _AppInfoPageState();
}
class _AppInfoPageState extends State<AppInfoPage> {
String appName = '';
String packageName = '';
String version = '';
String buildNumber = '';
@override
void initState() {
super.initState();
_initPackageInfo();
}
Future<void> _initPackageInfo() async {
// 一次性拿到一个 PackageInfo 对象,里面包含了应用的全部关键信息。
final info = await PackageInfo.fromPlatform();
setState(() {
appName = info.appName;
packageName = info.packageName;
version = info.version;
buildNumber = info.buildNumber;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("App Info")),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('App Name: $appName'),
Text('Package Name: $packageName'),
Text('Version: $version'),
Text('Build Number: $buildNumber'),
],
),
),
);
}
}
