初始化信息
This commit is contained in:
Executable
+58
@@ -0,0 +1,58 @@
|
||||
import Cocoa
|
||||
import FlutterMacOS
|
||||
import window_manager
|
||||
|
||||
import UserNotifications
|
||||
@main
|
||||
class AppDelegate: FlutterAppDelegate {
|
||||
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||
// 不终止应用,而是隐藏窗口
|
||||
return false
|
||||
}
|
||||
override func applicationDidFinishLaunching(_ aNotification: Notification) {
|
||||
// Request notification authorization
|
||||
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge]) { granted, error in
|
||||
if let error = error {
|
||||
print("Error requesting notification authorization: \(error)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 处理应用重新打开事件
|
||||
override func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
|
||||
if !flag {
|
||||
for window in NSApp.windows {
|
||||
window.makeKeyAndOrderFront(nil)
|
||||
NSApp.activate(ignoringOtherApps: true)
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// 处理应用终止事件(包括强制退出)
|
||||
override func applicationWillTerminate(_ notification: Notification) {
|
||||
// 在这里可以执行清理操作
|
||||
// 例如:保存状态、关闭连接等
|
||||
print("应用程序即将终止")
|
||||
|
||||
// 通知 Flutter 端应用即将终止
|
||||
if let controller = NSApp.windows.first?.contentViewController as? FlutterViewController {
|
||||
let channel = FlutterMethodChannel(name: "kaer_vpn/terminate", binaryMessenger: controller.engine.binaryMessenger)
|
||||
channel.invokeMethod("onTerminate", arguments: nil)
|
||||
}
|
||||
}
|
||||
|
||||
// // window manager restore from dock: https://leanflutter.dev/blog/click-dock-icon-to-restore-after-closing-the-window
|
||||
// override func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
|
||||
// if !flag {
|
||||
// for window in NSApp.windows {
|
||||
// if !window.isVisible {
|
||||
// window.setIsVisible(true)
|
||||
// }
|
||||
// window.makeKeyAndOrderFront(self)
|
||||
// NSApp.activate(ignoringOtherApps: true)
|
||||
// }
|
||||
// }
|
||||
// return true
|
||||
// }
|
||||
}
|
||||
Reference in New Issue
Block a user