import 'dart:io'; // 确保方法通道实现被导入,以便正确初始化 // ignore: unused_import import 'app_upgrade_plugin_method_channel.dart'; import 'app_upgrade_plugin_platform_interface.dart'; import 'core/http_config.dart'; import 'models/upgrade_info.dart'; // 简化版API(推荐使用) export 'app_upgrade_simple.dart'; // HTTP配置 export 'core/http_config.dart'; // 权限帮助类 export 'core/permission_helper.dart'; export 'models/upgrade_info.dart'; export 'widgets/widgets.dart'; class AppUpgradePlugin { // 单例模式,确保全局只有一个实例 static final AppUpgradePlugin _instance = AppUpgradePlugin._internal(); factory AppUpgradePlugin() => _instance; /// 全局设置:是否忽略证书验证 /// 默认情况下,插件会根据编译模式自动决定(Debug模式忽略,Release模式验证) /// 设置为true将强制在所有环境下忽略证书验证 static bool ignoreCertificate = true; AppUpgradePlugin._internal() { // 确保平台接口已正确初始化 _ensurePlatformInitialized(); // 根据全局设置配置HTTP if (ignoreCertificate) { configureHttp(HttpConfig.unsafe); } } // 确保平台接口初始化 void _ensurePlatformInitialized() { // 触发平台接口的懒加载初始化 final _ = AppUpgradePluginPlatform.instance; } /// 配置HTTP设置 /// /// 示例: /// ```dart /// // 开发环境配置 /// AppUpgradePlugin().configureHttp(HttpConfig.development); /// /// // 自定义配置 /// AppUpgradePlugin().configureHttp(HttpConfig( /// ignoreCertificate: true, /// connectTimeout: 60, /// defaultMethod: 'POST', /// )); /// ``` void configureHttp(HttpConfig config) { AppUpgradePluginPlatform.instance.configureHttp(config); } /// 获取平台版本 Future getPlatformVersion() { return AppUpgradePluginPlatform.instance.getPlatformVersion(); } Future getAndroidSdkVersion() { return AppUpgradePluginPlatform.instance.getAndroidSdkVersion(); } /// 获取当前App信息 Future> getAppInfo() { return AppUpgradePluginPlatform.instance.getAppInfo(); } /// 检查更新 /// [url] 检查更新的接口地址 /// [params] 额外的请求参数 Future checkUpdate(String url, {Map? params}) { return AppUpgradePluginPlatform.instance.checkUpdate(url, params: params); } /// 下载APK文件(仅Android) /// [url] APK下载地址 /// [onProgress] 下载进度回调 /// [savePath] 保存路径(可选,默认使用系统下载目录) Future downloadApk(String url, {Function(DownloadProgress)? onProgress, String? savePath}) { if (!Platform.isAndroid) { throw UnsupportedError('downloadApk only supports Android platform'); } return AppUpgradePluginPlatform.instance.downloadApk(url, onProgress: onProgress, savePath: savePath); } /// 安装APK(仅Android) /// [filePath] APK文件路径 Future installApk(String filePath) { if (!Platform.isAndroid) { return Future.value(false); } return AppUpgradePluginPlatform.instance.installApk(filePath); } /// 跳转到应用商店 /// [url] 应用商店地址 Future goToAppStore(String url) { return AppUpgradePluginPlatform.instance.goToAppStore(url); } /// 获取下载目录路径 Future getDownloadPath() { return AppUpgradePluginPlatform.instance.getDownloadPath(); } /// 检查是否已下载指定版本的APK /// [version] 版本号 /// [md5] MD5值(可选) Future checkApkExists(String version, String? md5) { if (!Platform.isAndroid) { return Future.value(false); } return AppUpgradePluginPlatform.instance.checkApkExists(version, md5); } }