macOS上的通用链接

时间:2016-12-06 08:55:45

标签: ios macos macos-sierra ios-universal-links

从iOS9开始,通用链接可以在iOS上运行,但我想知道macOS上是否有这样的东西?我们有一个应用程序,它是一个带有相应Web应用程序的macOS-App,我们希望用户点击链接在Mac-App中打开,而不是用目标链接打开浏览器。

在macOS上无论如何都可以吗?我刚刚找到了适用于iOS的样本,但没有找到macOS的样本?!?

1 个答案:

答案 0 :(得分:4)

在macOS上支持通用链接需要您的应用程序和网站(以及macOS 10.15+)的支持。

有关详细信息,请参阅Apple文档Allowing Apps and Websites to Link to Your Content(本文涉及iOS,tvOS和macOS的深层链接)及其子文章Enabling Universal LinksHandling Universal Links

快速概述:

基本上,它与iOS上的相同:您需要在服务器的根目录或apple-app-site-association目录中创建一个.well-known文件(在中进行了说明”启用上方的“启用通用链接” 。它描述了可以将哪些URL路径传递到您的应用程序。重要的是,此文件必须是有效的JSON(请对其进行验证!),并且必须通过具有有效证书且没有任何重定向的HTTPS进行提供!

您需要在供应配置文件中启用“关联域”功能。详细信息取决于Xcode是否管理您的配置文件。在您的权利文件(通常可以通过Xcode中目标的“签名和功能”选项卡进行编辑)中,您需要添加相应的关联域,例如applinks:my.domain.example(不包含https://或其他任何内容,只需原始域名)。

然后,您需要在应用程序委托中实现application(_:continue:restorationHandler:)来处理通用链接。

在开发过程中让macOS首次选择该关联可能很烦人。 调试提示:

  • 打开Console.app并过滤swcd,这是负责相关Web凭据和通用链接的守护程序。有时,您会看到提示为什么它不起作用(例如拒绝apple-app-site-association文件)。
  • 我还必须杀死swcd守护进程,以使其由launchd重新启动,然后获取对apple-app-site-association文件所做的更改/修复。 iOS和macOS通常都应在“应用程序安装” 1 上重新加载此文件(尚未更清楚地指定此内容;我想它们的意思是App Store的安装/更新,但我不知道何时安装这是为在App Store外部分发的macOS应用加载的。)
  • 此外,请注意,在Safari中输入通用链接将不会移交给您的应用:Apple在开发论坛 2 中表示,他们相信如果用户已经在浏览器环境中,他们想留在这里而不是突然转移到应用程序。因此,要测试通用链接,请打开Notes.app,创建一个新注释,然后在其中输入/粘贴要测试的通用链接。然后,您可以单击它并询问您是否要在应用程序中打开它。

1)对不起,我在阅读本文时没有开发者论坛链接。

2)再次抱歉,目前没有链接。苹果员工至少两次看到这一点,他们都引用了Notes技巧。即使他们在那里谈论iOS,在macOS上也是如此。