【问题标题】:URL Schemes not working on macOSURL 方案在 macOS 上不起作用
【发布时间】:2018-06-25 02:17:28
【问题描述】:

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

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

我在Info.plist 中注册了 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 无法打开此 URL,因为 macOS 无法识别以 chirper: 开头的 URL

【问题讨论】:

  • 点击链接时应用程序是否正在运行?
  • @albert 不起作用...但是别担心,我有一个想法可以使用另一种方法。
  • @albert 我将创建一个 WKWebView 并侦听新的 URL 以获取访问令牌,而不是使用 URL 方案。我找不到任何其他方法
  • @albert 我不发布答案的原因是因为我在使用 WKWebView 时放弃了 URL Schemes 的想法。但是谢谢你的帮助????
  • 尝试“清理构建文件夹”并重建。对我有帮助。看起来在某些情况下这是必需的。

标签: swift macos cocoa url oauth


【解决方案1】:

尝试“清理构建文件夹”并重建。对我有帮助。看起来在某些情况下这是必需的。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      • 2022-07-31
      • 2014-04-22
      相关资源
      最近更新 更多