Files
pixes/macos/Runner/MainFlutterWindow.swift
2024-05-15 20:40:59 +08:00

38 lines
1.3 KiB
Swift

import Cocoa
import FlutterMacOS
import IOKit.ps
class MainFlutterWindow: NSWindow {
override func awakeFromNib() {
let flutterViewController = FlutterViewController()
let windowFrame = self.frame
self.contentViewController = flutterViewController
self.setFrame(windowFrame, display: true)
let proxyChannel = FlutterMethodChannel(
name: "pixes/proxy",
binaryMessenger: flutterViewController.engine.binaryMessenger)
proxyChannel.setMethodCallHandler { (call, result) in
//
if let proxySettings = CFNetworkCopySystemProxySettings()?.takeUnretainedValue() as NSDictionary?,
let dict = proxySettings.object(forKey: kCFNetworkProxiesHTTPProxy) as? NSDictionary,
let host = dict.object(forKey: kCFNetworkProxiesHTTPProxy) as? String,
let port = dict.object(forKey: kCFNetworkProxiesHTTPPort) as? Int {
let proxyConfig = "\(host):\(port)"
result(proxyConfig)
} else {
result("No proxy")
}
}
RegisterGeneratedPlugins(registry: flutterViewController)
super.awakeFromNib()
}
override public func order(_ place: NSWindow.OrderingMode, relativeTo otherWin: Int) {
super.order(place, relativeTo: otherWin)
hiddenWindowAtLaunch()
}
}