版本記錄
版本號 | 時間 |
---|---|
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鍵(用于基于文檔瀏覽器的應用程序),也可以設置UIFileSharingEnabled和LSSupportsOpeningDocumentsInPlace鍵。
這些鍵可以使其他應用程序打開并編輯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
-
NSFileProviderExtension
- File Provider 擴展的主類。
-
NSFileProviderManager
- 一個管理器對象,用于從你的app或File Provider擴展中與文件提供程序進行通信。
2. Provided Items
項目提供有關由您的文件提供程序管理的文檔和文件夾的信息。
-
NSFileProviderItem
- File Provider擴展管理的項目。
-
- 定義由File Provider擴展管理的項目的屬性的協議。
-
- File Provider擴展管理的item的唯一標識符。
-
NSFileProviderItemCapabilities
- 一個item的能力,定義了用戶在文檔瀏覽器中執行的操作。
3. Content and Change Tracking
-
Content and Change Tracking
- 創建枚舉器來指定file provider中的內容,并且跟蹤那個內容的改變。
4. Compatibility
-
Creating File Providers for Multiple Versions of iOS
- 創建不同版本的iOS的File Provider擴展。
5. Errors
-
- File Provider擴展引起的錯誤碼。
-
- 由File Provider擴展引發的錯誤域
-
NSFileProviderErrorCollidingItemKey
- 從文件名碰撞錯誤的userInfo屬性訪問現有項目的key。
-
NSFileProviderErrorNonExistentItemIdentifierKey
- 從NSFileProviderErrorNoSuchItem錯誤的userInfo屬性獲取標識符的key。
后記
本篇已結束,后面更精彩~~~