如何访问云端硬盘以在swift中将文件导入我的应用程序?

Jac*_*row 3 dropbox ios icloud swift

我想通过点击按钮(如下面的WhatsApp屏幕截图)从云服务(如iCloud,google drive和dropbox)获取文档,有没有人知道如何在swift中执行此操作?提前致谢

在此输入图像描述

Ale*_*ros 15

从您的项目的能力.首先启用iCloud服务和密钥共享,在您的类中导入MobileCoreServices,最后在UIViewController中扩展以下三个类:

UIDocumentMenuDelegate,UIDocumentPickerDelegate,UINavigationControllerDelegate
Run Code Online (Sandbox Code Playgroud)

实现以下功能:

 public func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
              let myURL = url as URL
              print("import result : /(myURL)")
    }


public func documentMenu(_ documentMenu:UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
        documentPicker.delegate = self
        present(documentPicker, animated: true, completion: nil)
    }


func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
            print("view was cancelled")
            dismiss(animated: true, completion: nil)
    }
Run Code Online (Sandbox Code Playgroud)

怎么称呼这一切?将以下位代码添加到您的单击功能中..

func clickFunction(){

let importMenu = UIDocumentMenuViewController(documentTypes: [String(kUTTypePDF)], in: .import)
            importMenu.delegate = self
            importMenu.modalPresentationStyle = .formSheet       
            self.present(importMenu, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

单击您的按钮.将弹出以下菜单..

MenuPicker

在DropBox的情况下.点击任何项目.您将被重定向回您的应用程序,URL将记录在您的终端中.

在此输入图像描述

根据您的需要操作documentTypes.在我的应用程序中,用户只允许使用Pdf.所以,适合自己.

kUTTypePDF

此外,如果您想要自定义自己的菜单栏.添加以下代码并在处理程序中自定义您自己的函数

        importMenu.addOption(withTitle: "Create New Document", image: nil, order: .first, handler: { print("New Doc Requested") })
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

好好享受.