Flutter获取应用版本号
-
安装依赖(pubspec.yaml文件)
package_info: ^0.4.0+2 -
导入
import ‘package:package_info/package_info.dart’; -
在你的pubspec.yaml文件头部
注意这段话,不翻译了。。。
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
然后注意的是像android的包名,以及ios的配置信息需要单独去对应的文件夹下(android ,ios)处理,比如android就是build.gradle
获取
直接获取
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String appName = packageInfo.appName;
String packageName = packageInfo.packageName;
String version = packageInfo.version;
String buildNumber = packageInfo.buildNumber;
异步获取
PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
String appName = packageInfo.appName;
String packageName = packageInfo.packageName;
String version = packageInfo.version;
String buildNumber = packageInfo.buildNumber;
});
然后 PackageInfo里面可以获取这么多信息
/// 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.
final String buildNumber;
Flutter更新应用
做过移动开发的小伙伴应该知道 移动端升级主要是本地安装包版本,本地运行版本,线上版本三者进行比对,Android: 下载新版本包,ios:跳转AppStore链接,这里就不多说了。
我们现在使用flutter更新版本
下载apk:
引入
dependencies:
flutter_downloader: 1.1.3
taskId = await FlutterDownloader.enqueue(
url: url,//服务端提供apk文件下载路径
savedDir: (await getExternalStorageDirectory()).path.toString(),//本地存放路径
fileName: “xiangta_” + netCode + “.apk”,//存放文件名
showNotification: false,//是否显示在通知栏
openFileFromNotification: false,//是否在通知栏可以点击打开此文件
);
//taskId为任务id (与完成下载的文件成一一对应)open是执行打开 打开需要任务id 相信你已经找到方向了
FlutterDownloader.registerCallback((taskId, status, progress) {
if (status == DownloadTaskStatus.complete) {
//下载完成
FlutterDownloader.open(taskId:taskId));
} else if (status == DownloadTaskStatus.failed) {
//下载出错
}
});