【问题标题】:iOS open app when file is tapped in `Files` app在“文件”应用程序中点击文件时iOS打开应用程序
【发布时间】:2018-11-19 19:38:00
【问题描述】:

某些具有自定义文件类型的 iOS 应用会在点击该类型的文件时自动启动(例如,如果在“文件”应用中点击页面文件,则会启动 Pages)。作为 UTI 所有者的 iOS 应用程序如何获得相同的行为? (UTI 特别符合com.apple.package

我正在使用来自 https://www.raywenderlich.com/133825/uiactivityviewcontroller-tutorial 的示例 BeerTracking 应用程序。在文件应用程序/邮件/便笺中点击从应用程序导出的文件时,会出现一个空的快速预览 UI,然后用户才能通过点击共享在应用程序中打开文件。

【问题讨论】:

  • 点击文件/邮件中的任何文件似乎会为我打开一个快速预览 UI,包括 Pages 文档。我使用的是 iOS 12 Beta,并且我已经安装了 Pages。
  • @WolfLink 在我的 iOS 11 设备上它直接打开 Pages 应用程序。但我看到的另一个问题是:如果多个应用程序可以打开特定类型的文档,应该用哪个应用程序打开该类型?

标签: ios icloud uidocument uti


【解决方案1】:

在 info.plist 中添加 BOOLEAN 类型的键“支持就地打开文档”并将其设置为 TRUE。

你可以检查一下

BOOL openInPlace = [options[UIApplicationOpenURLOptionsOpenInPlaceKey] boolValue];

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options

如果提供的 url 是一个应该就地打开的文件(很可能来自文件应用程序)。

【讨论】:

  • 太棒了,谢谢
【解决方案2】:

首先您需要启用文件共享。通过在您的 Info.plist 文件中添加这 2 个键值 YES

    1. UIFileSharingEnabled
    2. LSSupportsOpeningDocumentsInPlace

** 你可以使用 UIDocumentInteractionController 做更多的事情 链接-https://developer.apple.com/documentation/uikit/uidocumentinteractioncontroller

  • 要将文件类型从 iOS 文件应用程序打开到您的应用程序,您需要在您的应用程序中提供云共享功能,以便您的应用程序可以将文件共享到您的应用程序命名的文件夹中的 iCloud。

  • 然后您可以将任何文件共享到 iCloud 驱动器,它们将显示在 iOS 默认文件应用程序中。

  • 当您从那里点击任何文件(例如 - 图片、pdf、视频)时,它们将在您的应用中打开。

    UIFileSharingEnabled 将由您完成工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-31
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2018-07-28
    • 1970-01-01
    • 2012-03-17
    相关资源
    最近更新 更多