FileProvider框架详细解析 (一) —— 基本概览(一)

版本记录

版本号 时间
V1.0 2018.01.23

前言

今天翻阅苹果的API文档,发现多了一个框架就是FileProvider,看了下才看见是iOS11.0新添加的框架,这里我们就一起来看一下框架FileProvider。

FileProvider

实施File Provider扩展,以便其他应用程序可以访问您的包含应用程序存储和管理的文档和目录。

看一下框架的基本信息


Overview

如果您的应用主要专注于存储和管理用户文档,则可以实现File Provider扩展,以便用户在使用其他app时可以访问其内容。

File Provider扩展:

  • 根据需要创建你需要下载的远程文件的占位符。
  • 拦截来自主机应用程序的协调读取,以便在读取之前从远程服务器下载或更新文件。
  • 在主机应用程序进行协调写入后触发通知,以便扩展程序可以根据需要将更改上传到远程服务器。
  • 枚举存储的文档和文件夹。
  • 对存储的文档和文件夹执行操作(如导入,移动,重命名或删除项目)。

其他app使用 UIDocumentBrowserViewController
UIDocumentPickerViewController类访问存储的文档。 这些类提供了一个标准的用户界面,用于浏览和存储文档和文件夹。 但是,您可以使用FileProviderUI框架将自定义操作添加到浏览器的上下文菜单中。

您也可以为您的file provider定义自定义消息接口。 使用这些接口来添加基础API不提供的功能。 有关更多信息,请参阅NSFileProviderService


Does Your App Need a File Provider? - 你的App需要一个File Provider吗?

一般来说,只有当您的App提供对存储在远程服务器上的文档的访问时,才能实现File Provider扩展。 您不需要File Provider扩展提供对本地存储的文档的获取。

要让其他App访问您的文档目录中的文件,只需在应用程序的Info.plist文件中设置正确的键。 您可以设置UISupportsDocumentBrowser键(用于基于文档浏览器的应用程序),也可以设置UIFileSharingEnabledLSSupportsOpeningDocumentsInPlace键。

这些键可以使其他应用程序打开并编辑Documents目录的内容。 您的文件也出现在Files app和文档浏览器中。 有关更多信息,请参阅UIDocumentBrowserViewController类。


Supporting Drag and Drop - 支持拖放

如果您的应用程序充当远程文档的拖动源,请重写您的NSItemProvider子类的registerFileRepresentationForTypeIdentifier:fileOptions:visibility:loadHandler:方法,并返回正在拖动的项目的URL。 此URL是您的扩展程序的URLForItemWithPersistentIdentifier:方法返回的值。 该URL可能引用本地文件或(如果您没有本地副本)到文件的占位符。

如果URL指向一个占位符,那么系统会调用您的File Provider扩展的startProvidingItemAtURL:completionHandler:方法,使您有机会下载该文件。


Topics

1. First Steps

  • NSFileProviderManager
    • 一个管理器对象,用于从你的app或File Provider扩展中与文件提供程序进行通信。

2. Provided Items

项目提供有关由您的文件提供程序管理的文档和文件夹的信息。

3. Content and Change Tracking

4. Compatibility

5. Errors

后记

本篇已结束,后面更精彩~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容