macos - 具有应用生命周期的 SwiftUI macOS 应用在接收通用链接时不会触发 onOpenURL
问题描述
我有一个简单的 SwiftUI 应用程序,带有一个 onOpenURL 处理程序来处理通用链接,我的目标是 macOS:
var body: some Scene {
WindowGroup {
ContentView()
.environment(\.managedObjectContext, persistenceController.container.viewContext)
.onOpenURL { url in
print("Inside onOpenURL....")
}
}
}
我还在我的域中配置了 Associated Domains 功能和 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 的,并且需要通用链接。
有没有人发现这个问题,以及如何解决它?
谢谢
解决方案
推荐阅读
- javascript - 如何使电子浏览器全屏尺寸?
- c++ - 使用 GDB 调试时如何在特定地址打印 VTable 的虚拟功能
- java - 如何根据 TableView 中一行上的两个属性将条件格式应用于 TableCell 文本字段
- powershell - PowerShell /silent 或 /quiet 参数是否安装可包含在应用程序中的臃肿软件
- javascript - 使用 Phonegap/Cordova JS 应用程序和 MS ADAL JS。如何在真实手机中重定向 URI?
- azure - 天蓝色的 Web 服务部署会覆盖一切吗?
- html - 如何设置标题内链接的底部位置
- paradox - 尝试读取 Paradox .sc 和 .sc2 代码文件
- symfony - 多原则实施
- powershell - 将 .txt 文件中的第 5 到 10 行复制到另一个 .txt 文件