package:package_info_plus
us
导入包到项目中去:
https://pub.flutter-io.cn/packages/package_info_pl
- package_info_plus
功能:
功能:
- 获取当前应用的版本号
- 获取当前应用的名字
- 获取当前应用的开发者
使用实例和代码:
import 'package:package_info_plus/package_info_plus.dart';
...
// 如果PackageInfo 的使用在runapp之前的话,就需要在runapp 前使用下面的语句
WidgetsFlutterBinding.ensureInitialized();
...
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String appName = packageInfo.appName;
String packageName = packageInfo.packageName;
String version = packageInfo.version;
String buildNumber = packageInfo.buildNumber;
实例代码:
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
Future<List> getVersionNumber() async {
//获取的是future 类型
final packageInfo = await PackageInfo.fromPlatform();
return [packageInfo.version, packageInfo.appName, packageInfo.buildNumber];
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Bottom Nav Bar")),
body: Center(
child: ElevatedButton(
child: Text('关于'),
onPressed: () {
showAboutDialog(
context: context,
applicationIcon: FaIcon(FontAwesomeIcons.cloudRain),
//applicationName: 'My app run',
//applicationVersion: '1.01.1',
//applicationLegalese: '',
children: [
//future 需要FutureBuilder来实现数据的获取
FutureBuilder(
future: getVersionNumber(),
builder: (context, snapdata) {
return snapdata.hasData
? Column(
// mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'app version: ${snapdata.data!.toList()[0]}'),
Text('app name: ${snapdata.data!.toList()[1]}'),
Text(
'app creater: ${snapdata.data!.toList()[2]}'),
],
)
: Text('null');
})
]);
},
)),
);
}
}