| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- 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<String> 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<String?> getApps();
- /// 获取系统语言
- Future<String?> getSystemLocale();
- /// 连接
- Future<bool?> connect(
- String sessionId,
- int socksPort,
- String tunnelConfig,
- String configJson,
- int remainTime,
- bool isCountdown,
- List<String> allowVpnApps,
- List<String> disallowVpnApps,
- String accessToken,
- String aesKey,
- String aesIv,
- int locationId,
- String locationCode,
- List<String> baseUrls,
- String params,
- int peekTimeInterval,
- );
- /// 断开连接
- Future<bool?> disconnect();
- /// 获取远程 IP
- Future<String?> getRemoteIp();
- /// 获取广告 ID
- Future<String?> getAdvertisingId();
- /// 将任务移至后台
- Future<bool?> moveTaskToBack();
- /// 是否已连接
- Future<bool?> isConnected();
- /// 获取 SIM 卡信息
- Future<String?> getSimInfo();
- /// 获取渠道
- Future<String?> getChannel();
- }
|