ios: add /platform event channel
This commit is contained in:
@@ -31,6 +31,7 @@
|
|||||||
073695882B3AC757007249BE /* Libcore.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 073695722B39DA23007249BE /* Libcore.xcframework */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
073695882B3AC757007249BE /* Libcore.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 073695722B39DA23007249BE /* Libcore.xcframework */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||||
0736958B2B3AC96D007249BE /* Bundle+Properties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0736958A2B3AC96D007249BE /* Bundle+Properties.swift */; };
|
0736958B2B3AC96D007249BE /* Bundle+Properties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0736958A2B3AC96D007249BE /* Bundle+Properties.swift */; };
|
||||||
0736958D2B3B79E0007249BE /* StatsEventHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0736958C2B3B79E0007249BE /* StatsEventHandler.swift */; };
|
0736958D2B3B79E0007249BE /* StatsEventHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0736958C2B3B79E0007249BE /* StatsEventHandler.swift */; };
|
||||||
|
0736958F2B3B8048007249BE /* PlatformMethodHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0736958E2B3B8047007249BE /* PlatformMethodHandler.swift */; };
|
||||||
075637BA2B01583F005AFB8E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60F1D4AAC33ACF5C8307310D /* Pods_Runner.framework */; };
|
075637BA2B01583F005AFB8E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60F1D4AAC33ACF5C8307310D /* Pods_Runner.framework */; };
|
||||||
075637BB2B01583F005AFB8E /* Pods_Runner.framework in Embed Frameworks (2 items) */ = {isa = PBXBuildFile; fileRef = 60F1D4AAC33ACF5C8307310D /* Pods_Runner.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
075637BB2B01583F005AFB8E /* Pods_Runner.framework in Embed Frameworks (2 items) */ = {isa = PBXBuildFile; fileRef = 60F1D4AAC33ACF5C8307310D /* Pods_Runner.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||||
075637BC2B015864005AFB8E /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03E392B72ADDA00E000ADF15 /* NetworkExtension.framework */; };
|
075637BC2B015864005AFB8E /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03E392B72ADDA00E000ADF15 /* NetworkExtension.framework */; };
|
||||||
@@ -132,6 +133,7 @@
|
|||||||
0736957A2B39DE78007249BE /* Libcore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Libcore.xcframework; path = Frameworks/Libcore.xcframework; sourceTree = "<group>"; };
|
0736957A2B39DE78007249BE /* Libcore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Libcore.xcframework; path = Frameworks/Libcore.xcframework; sourceTree = "<group>"; };
|
||||||
0736958A2B3AC96D007249BE /* Bundle+Properties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+Properties.swift"; sourceTree = "<group>"; };
|
0736958A2B3AC96D007249BE /* Bundle+Properties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+Properties.swift"; sourceTree = "<group>"; };
|
||||||
0736958C2B3B79E0007249BE /* StatsEventHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsEventHandler.swift; sourceTree = "<group>"; };
|
0736958C2B3B79E0007249BE /* StatsEventHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsEventHandler.swift; sourceTree = "<group>"; };
|
||||||
|
0736958E2B3B8047007249BE /* PlatformMethodHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlatformMethodHandler.swift; sourceTree = "<group>"; };
|
||||||
075637B22B0157CB005AFB8E /* libcore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libcore.xcframework; path = ../libcore/bin/libcore.xcframework; sourceTree = "<group>"; };
|
075637B22B0157CB005AFB8E /* libcore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libcore.xcframework; path = ../libcore/bin/libcore.xcframework; sourceTree = "<group>"; };
|
||||||
07A63A832B1E728C00CAFA4D /* Release */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Release; path = ../build/ios/framework/release; sourceTree = "<group>"; };
|
07A63A832B1E728C00CAFA4D /* Release */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Release; path = ../build/ios/framework/release; sourceTree = "<group>"; };
|
||||||
07A63A842B1E72AE00CAFA4D /* App.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = App.xcframework; path = ../build/ios/framework/release/App.xcframework; sourceTree = "<group>"; };
|
07A63A842B1E72AE00CAFA4D /* App.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = App.xcframework; path = ../build/ios/framework/release/App.xcframework; sourceTree = "<group>"; };
|
||||||
@@ -226,6 +228,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
03B516662AE6B93A00EA47E2 /* MethodHandler.swift */,
|
03B516662AE6B93A00EA47E2 /* MethodHandler.swift */,
|
||||||
|
0736958E2B3B8047007249BE /* PlatformMethodHandler.swift */,
|
||||||
03B516682AE7306B00EA47E2 /* StatusEventHandler.swift */,
|
03B516682AE7306B00EA47E2 /* StatusEventHandler.swift */,
|
||||||
03B5167A2AE79DB400EA47E2 /* FileMethodHandler.swift */,
|
03B5167A2AE79DB400EA47E2 /* FileMethodHandler.swift */,
|
||||||
03B5166A2AE7315E00EA47E2 /* AlertsEventHandler.swift */,
|
03B5166A2AE7315E00EA47E2 /* AlertsEventHandler.swift */,
|
||||||
@@ -680,6 +683,7 @@
|
|||||||
0736958D2B3B79E0007249BE /* StatsEventHandler.swift in Sources */,
|
0736958D2B3B79E0007249BE /* StatsEventHandler.swift in Sources */,
|
||||||
03B516692AE7306B00EA47E2 /* StatusEventHandler.swift in Sources */,
|
03B516692AE7306B00EA47E2 /* StatusEventHandler.swift in Sources */,
|
||||||
032158B82ADDF8BF008D943B /* VPNManager.swift in Sources */,
|
032158B82ADDF8BF008D943B /* VPNManager.swift in Sources */,
|
||||||
|
0736958F2B3B8048007249BE /* PlatformMethodHandler.swift in Sources */,
|
||||||
03B516672AE6B93A00EA47E2 /* MethodHandler.swift in Sources */,
|
03B516672AE6B93A00EA47E2 /* MethodHandler.swift in Sources */,
|
||||||
03B5166D2AE7325500EA47E2 /* LogsEventHandler.swift in Sources */,
|
03B5166D2AE7325500EA47E2 /* LogsEventHandler.swift in Sources */,
|
||||||
03E392D02ADDF1BD000ADF15 /* FilePath.swift in Sources */,
|
03E392D02ADDF1BD000ADF15 /* FilePath.swift in Sources */,
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import Libcore
|
|||||||
|
|
||||||
func registerHandlers() {
|
func registerHandlers() {
|
||||||
MethodHandler.register(with: self.registrar(forPlugin: MethodHandler.name)!)
|
MethodHandler.register(with: self.registrar(forPlugin: MethodHandler.name)!)
|
||||||
|
PlatformMethodHandler.register(with: self.registrar(forPlugin: PlatformMethodHandler.name)!)
|
||||||
FileMethodHandler.register(with: self.registrar(forPlugin: FileMethodHandler.name)!)
|
FileMethodHandler.register(with: self.registrar(forPlugin: FileMethodHandler.name)!)
|
||||||
StatusEventHandler.register(with: self.registrar(forPlugin: StatusEventHandler.name)!)
|
StatusEventHandler.register(with: self.registrar(forPlugin: StatusEventHandler.name)!)
|
||||||
AlertsEventHandler.register(with: self.registrar(forPlugin: AlertsEventHandler.name)!)
|
AlertsEventHandler.register(with: self.registrar(forPlugin: AlertsEventHandler.name)!)
|
||||||
|
|||||||
41
ios/Runner/Handlers/PlatformMethodHandler.swift
Normal file
41
ios/Runner/Handlers/PlatformMethodHandler.swift
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
//
|
||||||
|
// PlatformMethodHandler.swift
|
||||||
|
// Runner
|
||||||
|
//
|
||||||
|
// Created by Hiddify on 12/27/23.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Flutter
|
||||||
|
import Combine
|
||||||
|
import Libcore
|
||||||
|
|
||||||
|
public class PlatformMethodHandler: NSObject, FlutterPlugin {
|
||||||
|
|
||||||
|
public static let name = "\(Bundle.main.serviceIdentifier)/platform"
|
||||||
|
|
||||||
|
public static func register(with registrar: FlutterPluginRegistrar) {
|
||||||
|
let channel = FlutterMethodChannel(name: Self.name, binaryMessenger: registrar.messenger())
|
||||||
|
let instance = PlatformMethodHandler()
|
||||||
|
registrar.addMethodCallDelegate(instance, channel: channel)
|
||||||
|
instance.channel = channel
|
||||||
|
}
|
||||||
|
|
||||||
|
private var channel: FlutterMethodChannel?
|
||||||
|
|
||||||
|
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
|
switch call.method {
|
||||||
|
case "get_paths":
|
||||||
|
result(getPaths(args: call.arguments))
|
||||||
|
default:
|
||||||
|
result(FlutterMethodNotImplemented)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func getPaths(args: Any?) -> [String:String] {
|
||||||
|
return [
|
||||||
|
"base": FilePath.sharedDirectory.path,
|
||||||
|
"working": FilePath.workingDirectory.path,
|
||||||
|
"temp": FilePath.cacheDirectory.path
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,12 +10,12 @@ part 'directories_provider.g.dart';
|
|||||||
|
|
||||||
@Riverpod(keepAlive: true)
|
@Riverpod(keepAlive: true)
|
||||||
class AppDirectories extends _$AppDirectories with InfraLogger {
|
class AppDirectories extends _$AppDirectories with InfraLogger {
|
||||||
final _methodChannel = const MethodChannel("app.hiddify.com/platform");
|
final _methodChannel = const MethodChannel("com.hiddify.app/platform");
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Directories> build() async {
|
Future<Directories> build() async {
|
||||||
final Directories dirs;
|
final Directories dirs;
|
||||||
if (false&&Platform.isIOS) {
|
if (Platform.isIOS) {
|
||||||
|
|
||||||
final paths = await _methodChannel.invokeMethod<Map>("get_paths");
|
final paths = await _methodChannel.invokeMethod<Map>("get_paths");
|
||||||
loggy.debug("paths: $paths");
|
loggy.debug("paths: $paths");
|
||||||
|
|||||||
Reference in New Issue
Block a user