引入package
flutter_xupdate: ^2.0.2
修改主題文件 android/app/src/main/res/values/styles.xml
<style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar">
在mian.dart中引入依賴
import 'dart:io';
import 'package:flutter_xupdate/flutter_xupdate.dart';
在MyApp的initState方法中,配置自動更新
@override
void initState() {
super.initState();
initXUpdate();
FlutterXUpdate.checkUpdate(
url: '...update_forced.json?t=' + DateTime.now().millisecond.toString());
}
///初始化
void initXUpdate() {
if (Platform.isAndroid) {
FlutterXUpdate.init(
//請求響應超時時間
timeout: 5000,
//是否僅在wifi下進行更新
isWifiOnly: false,
);
}
}
應用打包
flutter build apk --no-shrink
進入目錄 build/app/outputs/flutter-apk 生成打包文件的MD5碼
certutil -hashfile app.apk MD5
配置VSCode快捷鍵
配置打包文件 update_forced.json
{
"Code": 0,
"Msg": "",
"UpdateStatus": 2,
"VersionCode": 19,
"VersionName": "0.1.1",
"UploadTime": "2021-12-02 14:46:41",
"ModifyContent": "\r\n1、完成登錄功能。\r\n2、實現自動更新。\r\n3、新增自定義更新服務API接口。\r\n4、優化更新提示界面。",
"DownloadUrl": ".../apk/app.apk",
"ApkSize": 21468,
"ApkMd5": "..."
}
使用 ctrl+shift+u 將ApkMd5轉換為大寫