这是我的 AppDelegate 代码。这是我第一次开发Mac应用程序,我对此有点不清楚🤔
class AppDelegate: NSObject, NSApplicationDelegate {
@StateObject var viewModel = GitHubCopilotViewModel()
func applicationShouldTerminateAfterLastWindowClosed(_: NSApplication) -> Bool { true }
// Handle custom URL Scheme
func application(_ application: NSApplication, open urls: [URL]) {
Logger.gitHubCopilot.info("Application awakened by URL Scheme")
Logger.gitHubCopilot.info("Application state: \(application.isActive)")
Logger.gitHubCopilot.info("Bundle ID: \(Bundle.main.bundleIdentifier ?? "unknown")")
Logger.gitHubCopilot.info("Received SSO callback URL: \(urls)") // empty?? 🤔
guard let url = urls.first else { return }
let scheme = Bundle.main.object(forInfoDictionaryKey: "SSO_URL_SCHEME") as? String ?? ""
Logger.gitHubCopilot.info("Received callback URL Scheme: \(url.scheme ?? "")")
Logger.gitHubCopilot.info("Target application callback URL Scheme: \(scheme)")
if url.scheme == scheme {
DispatchQueue.main.async { [weak self] in
Logger.gitHubCopilot.info("Processing SSO callback")
self?.viewModel.handleSsoCallback(
code: NSURLComponents(string: url.absoluteString)?.queryItems?.first(where: {
$0.name == "code"
})?.value ?? ""
)
}
}
}
}
我尝试添加了很多日志,发现只有M2 Pro芯片的MacBook有这个问题
if let userActivity = connectionOptions.userActivities.first {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL {
handleIncomingURL(incomingURL)
} else {
print("URL Not Found")
}
}
您可以在场景委托中的
willConnect To
中添加此代码