init static method

void init({
  1. bool isDebug = false,
  2. String? baseUrl,
  3. Dio? dio,
  4. UpdateApiParser? parser,
  5. ErrorHandler? errorHandler,
  6. UpdateDialogBuilder? dialogBuilder,
  7. ForcedUpdatePageBuilder? forcedUpdatePageBuilder,
  8. OssConfig? ossConfig,
  9. UpgraderCallback? onEvent,
  10. bool enableLog = false,
  11. int maxRetryCount = 3,
})

初始化配置,应在 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,
  int maxRetryCount = 3,
}) {
  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._maxRetryCount = maxRetryCount;

  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,
    'maxRetryCount': maxRetryCount,
    'hasOssConfig': ossConfig != null,
    'hasCustomParser': parser != null,
    'hasCustomDialog': dialogBuilder != null,
    'hasForcedPage': forcedUpdatePageBuilder != null,
  });
}