init static method
void
init({
- bool isDebug = false,
- String? baseUrl,
- Dio? dio,
- UpdateApiParser? parser,
- ErrorHandler? errorHandler,
- UpdateDialogBuilder? dialogBuilder,
- ForcedUpdatePageBuilder? forcedUpdatePageBuilder,
- OssConfig? ossConfig,
- UpgraderCallback? onEvent,
- bool enableLog = false,
初始化配置,应在 App 启动时调用一次。
onEvent:统一的升级事件回调,所有流程事件(检测、下载、校验、
安装、清理)均通过此回调输出。调用方可根据 UpgraderEvent.type
自行分发业务逻辑。
enableLog:是否在初始化后立即启用日志回调,默认为 false。
也可以在运行时通过 enableLog 属性动态切换。
Implementation
static void init({
bool isDebug = false,
String? baseUrl,
Dio? dio,
UpdateApiParser? parser,
ErrorHandler? errorHandler,
UpdateDialogBuilder? dialogBuilder,
ForcedUpdatePageBuilder? forcedUpdatePageBuilder,
OssConfig? ossConfig,
UpgraderCallback? onEvent,
bool enableLog = false,
}) {
final inst = instance;
inst._isDebugging = isDebug;
if (parser != null) inst._parser = parser;
inst._errorHandler = errorHandler;
inst._forcedUpdatePageBuilder = forcedUpdatePageBuilder;
inst._ossConfig = ossConfig;
inst._onEvent = onEvent;
inst._enableLog = enableLog;
inst._dialogBuilder =
dialogBuilder ??
(context, updateInfo, statusNotifier, progressNotifier) => MyUpdateDialog(
updateInfo: updateInfo,
statusNotifier: statusNotifier,
progressNotifier: progressNotifier,
);
if (dio != null) {
inst._dio = dio;
} else {
inst._dio = Dio(
BaseOptions(
baseUrl: baseUrl ?? '',
connectTimeout: const Duration(seconds: 15),
receiveTimeout: const Duration(minutes: 30),
),
);
if (isDebug) {
inst._dio.interceptors.add(
InterceptorsWrapper(
onResponse: (response, handler) {
debugPrint('[TinyUpgrader] 响应: ${response.statusCode}');
return handler.next(response);
},
onError: (error, handler) {
debugPrint('[TinyUpgrader] 请求错误: ${error.message}');
return handler.next(error);
},
),
);
}
}
inst._initialized = true;
inst._emit(UpgraderEventType.init, 'TinyUpgrader 初始化完成', {
'isDebug': isDebug,
'enableLog': enableLog,
'hasOssConfig': ossConfig != null,
'hasCustomParser': parser != null,
'hasCustomDialog': dialogBuilder != null,
'hasForcedPage': forcedUpdatePageBuilder != null,
});
}