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

在macOS上是否有可能?我只是找到了适用于iOS的示例,但没有找到适用于macOS的示例?

最佳答案

在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://或其他任何内容,仅是原始域名)。

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

在开发过程中第一次使macOS拾取关联可能会很烦人。 调试提示:

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


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

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

    关于ios - macOS上的通用链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40991312/

    10-13 03:59