mirror of
https://github.com/wgh136/pixes.git
synced 2025-09-27 12:57:24 +00:00
38 lines
1.3 KiB
Swift
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()
|
|
}
|
|
}
|