首页 > 解决方案 > iOS:如何显示“打开方式”应用切换器(操作系统选择器表)。没有文件,只有一个链接。

问题描述

在 iOS 中,您可以修改您的 plist 以将文件类型与您的应用程序相关联,因此如果用户选择该文件,则会弹出“打开方式...”菜单。 如何在“打开方式”中获取我的应用程序 (使用 CFBundleDocumentTypes)

但是,对于不代表任何文件的深层链接,我该如何做到这一点?换句话说,我只想通过电子邮件发送一个在 App Switcher 中解析的深层链接,让用户在 3 个不同的应用程序之间进行选择。

我没有托管或发送任何文件。我只需要传递数据参数,就像常规深度链接一样,但它可以在 3 个不同的应用程序中打开,而不仅仅是 1 个。

标签: iosswiftdeep-linking

解决方案


如果它是已知的文件类型(即不是您编写的文件类型/扩展名),那么您可以将其添加到 Info.plist。以下是步骤:

1) 在 XCode 中单击您的项目并选择“信息”选项卡

2)在底部,您应该看到“文档类型”;您需要添加您的文档类型。对于名字,你可以写任何东西。对于类型,您应该参考:https ://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html#//apple_ref/doc/uid/TP40009259- SW1

3)最后一步是展开“Additional document type properties”并添加一个键值对。键应该是字符串类型的“LSHandlerRank”。该值应为“备用”。

如果您有自定义类型,您将执行相同的步骤,但有一些例外:

1) 添加任何您想要的名称的文档类型。

2)添加符合你项目的类型;例如,如果您为示例公司工作,文件类型为 abc,我会将“com.example.abc”添加到类型中。

3) 接下来,您需要在“Imported UTIs”区域添加一个值。对于描述,使用任何你想要的。

4) 对于标识符,使用您在步骤 2 中输入的相同值(即“com.example.abc”)

5) 对于“符合”,请在此处参考 Apple 的文档: https ://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html#//apple_ref/doc/uid/ TP40001319-CH202-BCGJGJGA

6) 在“其他 UTI 属性”下,您将添加一个标有“UTTypeTagSpecification”的字典

7)在字典下,添加一个标有“public.filename-extension”的数组

8) 在数组下,添加两项。第一个应该是您的扩展的大写版本(“ABC”),第二个应该是您的扩展的小写版本(“abc”)。

这应该允许应用程序在 iOS 显示的“打开方式”菜单中弹出。不过,为了处理填充,您需要将以下函数添加到 AppDelegate:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool

应该这样做!


推荐阅读