为什么我的 AppDelegate 中的应用程序函数在某些型号上收到空网址? 🤔

问题描述 投票:0回答:1

这是我的 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有这个问题

swift macos url-scheme
1个回答
0
投票
 if let userActivity = connectionOptions.userActivities.first {
            if userActivity.activityType == NSUserActivityTypeBrowsingWeb,
               let incomingURL = userActivity.webpageURL {
                handleIncomingURL(incomingURL)
            } else {
                print("URL Not Found")
            }
        }

您可以在场景委托中的

willConnect To
中添加此代码

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.