iOS(swift)でiCloud Drive / DropBoxとファイルの連携を行う
UIDocumentPickerは、ファイルの操作(アップロード、ダウンロード)についていい感じのUIを提供してくれます。
外部のストレージのサービスとの連携が楽になります。
エクスプローラよろしく、
・フォルダを指定して、そこにアップロード
・ファイルをタップして選択、そしてダウンロード
ができます。
サービスの切り替えも、UI上で可能です
DropBoxは独自にファイル選択のUIを持っていますが、UIDocumentPickerを使えば、だいたい同じ見た目で、操作可能です。
(内部的にDropBoxのアプリを呼んでいるようなので、完全なる一致はないですが)
LowLevelなAPIでの実装も可能ですが、いつも通り
XCode 7.2では動かなくなっちゃったので、需要があれば直して公開します。
・前提
- DropBoxとの連携を行う場合、DropBoxのアプリがインストールされている事
- エラー処理はちゃんとやりましょう
- デリゲートを実装しましょう
・Export
// URLは、ファイルを想定しています。
let documentPicker = UIDocumentPickerViewController(URL: url, inMode: UIDocumentPickerMode.ExportToService)
documentPicker.delegate = self
self.presentViewController(documentPicker, animated: true, completion: nil)
・Import
let array = ["public.image"]
let documentPicker = UIDocumentPickerViewController(documentTypes: array, inMode: UIDocumentPickerMode.Import)
documentPicker.delegate = self
self.presentViewController(documentPicker, animated: true, completion: nil)
・デリゲート
func documentPicker(controller: UIDocumentPickerViewController, didPickDocumentAtURL url: NSURL) {
}
func documentPickerWasCancelled(controller: UIDocumentPickerViewController) {
}