具有应用程序生命周期的 SwiftUI macOS 应用程序在接收通用链接时不会触发 onOpenURL

问题描述

我有一个简单的 SwiftUI 应用程序,带有一个 onopenURL 处理程序来处理通用链接,我的目标是 macOS:

var body: some Scene {
        WindowGroup {
            ContentView()
                .environment(\.managedobjectContext,persistenceController.container.viewContext)
                .onopenURL { url in
                    print("Inside onopenURL....")
                 }
         }
    }

我还在我的域中配置了关联域功能和 apple-app-site-association 文件,因此当打开指向该域的链接时,我的应用程序被打开而不是 Safari。 因此,在调试应用程序并单击通用链接(例如,在 Notes 应用程序中)以打开我的应用程序(确实如此)时,我希望在输出窗口中看到“Inside onopenURL ....”消息Xcode,意味着 onopenURL 处理程序正在处理通用链接

但这不会发生。每次单击通用链接时,应用程序都会打开,但 Xcode 中没有显示任何内容。这是 macOS Big Sur 11.1 和 11.2 的最新更新。

但是,如果使用相同的代码来定位 iOS 14 应用,这将正常工作,无需更改任何代码,只需更改应用的目标即可。

尝试了很多事情,我还发现如果我使用自定义 URL 方案(例如 myapp://),在我的 macOS 应用程序中会调用 onopenURL 处理程序。我可以看到“Inside onopenURL ....”消息。但是通用链接不会发生这种情况,我的应用是针对 macOS 的,需要通用链接

有没有人发现这个问题,以及如何解决它?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)