URL方案不适用于macOS

时间:2018-06-25 02:17:28

标签: swift macos cocoa url oauth

我正在开发一个需要从外部提供商获取授权令牌的应用程序。 因此,我需要一个用于重定向回调的自定义URL方案。

重定向回调为:chirper://success

我在Info.plist中注册了URL方案: URL Scheme

我还在AppDelegate.swift中添加了以下方法:

func handleGetURLEvent(event: NSAppleEventDescriptor?, replyEvent: NSAppleEventDescriptor?) {
    if let aeEventDescriptor = event?.paramDescriptor(forKeyword: AEKeyword(keyDirectObject)) {
        if let urlStr = aeEventDescriptor.stringValue {
            let url = URL(string: urlStr)
            print(url)
            // do something with the URL
        }
    }
}

但是当我使用Safari打开重定向回调URL时,这是我得到的: Safari

  

Safari无法打开此URL,因为macOS无法识别以chirper:

开头的URL

2 个答案:

答案 0 :(得分:1)

根据对this question的回答,问题在于回调URL中包含://。如果删除这些,则应打开URL。我发现这在macOS 10.15.5上是正确的。

答案 1 :(得分:0)

尝试“清理生成文件夹”并重新生成。对我有帮助。在某些情况下,这似乎是必需的。