import 'dart:io'; import 'package:nomo/pigeons/core_api.g.dart' as pigeon; import 'mobile_core_api.dart'; import 'windows_core_api.dart'; // 导出子类供外部使用 export 'mobile_core_api.dart'; export 'windows_core_api.dart'; /// 导出 onEventChange 函数供外部使用 Stream onEventChange({String instanceName = ''}) { if (Platform.isWindows) { // Windows 使用自定义实现 return WindowsCoreApi.eventStream; } // Android/iOS 使用 Pigeon 实现 return pigeon.onEventChange(instanceName: instanceName); } /// 核心 API 抽象基类 /// Android/iOS 使用 Pigeon 实现,Windows 使用自定义实现 abstract class BaseCoreApi { static BaseCoreApi? _instance; /// 工厂方法,单例模式,根据平台返回对应实现 factory BaseCoreApi() { _instance ??= Platform.isWindows ? WindowsCoreApi.create() : MobileCoreApi.create(); return _instance!; } /// 获取应用列表 Future getApps(); /// 获取系统语言 Future getSystemLocale(); /// 连接 Future connect( String sessionId, int socksPort, String tunnelConfig, String configJson, int remainTime, bool isCountdown, List allowVpnApps, List disallowVpnApps, String accessToken, String aesKey, String aesIv, int locationId, String locationCode, List baseUrls, String params, int peekTimeInterval, ); /// 断开连接 Future disconnect(); /// 获取远程 IP Future getRemoteIp(); /// 获取广告 ID Future getAdvertisingId(); /// 将任务移至后台 Future moveTaskToBack(); /// 是否已连接 Future isConnected(); /// 获取 SIM 卡信息 Future getSimInfo(); /// 获取渠道 Future getChannel(); /// 打开应用 Future openPackage(String packageName); }