1

更新:还没有时间测试提供的答案,但是当我尝试不同的事情时会更新这个答案。

在 iOS 14 模拟器中,当我打开共享表并单击他们的Share Target时, Apple News应用程序会立即启动,他们会检查共享 URL 是否已添加到他们的索引中。

我的问题是他们如何在没有任何用户交互的情况下立即启动他们的应用程序?

一个 gif 大约值 100,000 个字:https ://giphy.com/gifs/HPzTNyWGDDMVwASQ9z

我想这可能是注册 aUniversal Link然后以编程方式从共享扩展视图控制器触发它的某种组合,但我想知道是否有人有更好的想法。


我问过的其他几个地方:

斯威夫特子版块

iOS 编程子版块

4

1 回答 1

1

这只是对新闻应用程序的开放 URL 调用。在 iOS 14 之前,它被命名为copy to app name. 为此,您需要使用 key 在 plist 中为您的应用程序指定支持的文档类型CFBundleDocumentTypes。有关更多信息,请参阅苹果文档: https ://help.apple.com/xcode/mac/current/#/devddd273fdd

股票期权列表发生了变化。

案例 1:当您的应用程序不支持任何类型的扩展时。并支持将文档添加到 plist。您的申请将出现在支持文件的共享表中。点击时,您的应用程序会收到一个 OpenURL 调用,其中包含共享文档的 URL。

情况 2:您的应用程序支持共享扩展或操作扩展,那么您的应用程序的打开 URL 调用选项将不会出现在共享表中。如果不满足共享扩展和操作扩展激活谓词并且您的应用程序支持共享的文档,则该选项将显示与案例 1 相同。(总结:如果共享表中列出了共享扩展或操作扩展,则打开 URL 选项将未列出。)

注意:openURL 调用的限制是,它只支持单个 URL。例如,您正在共享多个文件,您的应用程序 OpenURL 选项将出现。但是在点击时,您的应用程序将只收到一个 URL。

如果您的要求是仅共享一个 URL,并且您的应用程序没有共享扩展和操作扩展。那么关键CFBundleDocumentTypes是你的朋友。

于 2020-12-14T05:58:55.620 回答