Dropbox Browser提供了使用Dropbox的API和SDK浏览、搜索和下载文件的一种简单有效的方法。几分钟内,您将拥有一个在您的应用程序中运行的Dropbox文件浏览器,允许用户浏览和下载他们的文件。
以下列出了项目的亮点和关键功能。Dropbox Browser具有为iOS 7构建的出色界面,强大的文件处理功能,通知整合,后台支持和文件搜索能力。
DropboxBrowser具有类似于实际Dropbox应用程序的美观简洁界面。界面为最新的iOS技术构建,也易于自定义。
当用户点击文件时,DropboxBrowser会检查该文件是否已下载。如果文件尚未下载,则将其下载到应用程序的 缓存目录。如果本地和远程文件之间发生冲突,DropboxBrowser会尝试解决冲突。如果冲突无法解决,您将通过代理方法通知,并有机会自己处理下载。
了解有关项目要求、许可证、贡献和设置的更多信息。
在iOS项目中使用,需要至少Xcode 6.0。部署目标至少需要iOS 8.0。示例项目仅兼容Xcode 6.3及以上版本。
当前构建目标 | 最早支持的构建目标 | 最早的兼容构建目标 |
---|---|---|
iOS 10.3 | iOS 9.0 | iOS 8.0 |
Xcode 8.3 | Xcode 7.0 | Xcode 6.3 |
LLVM 8.0 | LLVM 7.0 | LLVM 6.0 |
要求备注
支持表示库已与该版本进行了测试。 兼容表示库应该适用于此操作系统版本(即它不依赖于任何不可用的SDK功能),但不再对其进行兼容性测试,并且可能需要调整或错误修复才能正确运行。
任何贡献都非常欢迎!您可以通过GitHub上的拉取请求和问题进行贡献。
按照以下说明正确将 DropboxBrowser 整合到您的项目中。使用提供的示例项目作为设置您自己的项目的指南。
下载或克隆此存储库,然后将 "ODB Classes" 文件夹及其包含的类复制到您的 Xcode 项目中。
在 Dropbox(https://www.dropbox.com/developers)上注册为开发者并设置您的应用程序。
使用以下回调(如下所示)更新您的 App Delegate 中的以下方法。将 "APP_KEY" 替换为步骤 1 中的您的应用程序密钥
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Setup Dropbox Here with YOUR OWN APP info
[[ODBoxHandler sharedHandler] prepareForPotentialSessionWithKey:@"APP_KEY"];
return YES;
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
[[ODBoxHandler sharedHandler] handleDropboxAuthenticationResponse:url];
// Add whatever other url handling code your app requires here
return YES;
}
使用您的新 Dropbox 应用密钥和密钥编辑您应用程序的 Info.plist。Dropbox 的说明见此处 https://github.com/dropbox/dropbox-sdk-obj-c#configure-your-project
将 ODBTableViewController 添加到您的界面中,无论是通过编程方式还是通过故事板。如果您通过故事板添加,可以在界面构建器中编辑一些属性。
实现 Dropbox Handler 的 ODBoxDelegate
代理。实现后,当文件下载或下载失败时,您将接收到调用。
[[ODBoxHandler sharedHandler] setDelegate:self];
在应用程序的生命周期中某个适当的时候,检查用户的 Dropbox 状态
BOOL loggedIn = [[ODBoxHandler sharedHandler] clientIsAuthenticated];
可选,您可能需要实现 ODBTableViewControllerDelegate
代理以覆盖默认的下载和视图生命周期函数。
文档在 Xcode 内部可用(Option-Click/右键单击方法或属性以获取快速帮助)。以下是一些关键方法和属性。
在显示 ODBTableViewController
之前必须设置属性。
检查当前用户是否已验证。在发生错误或用户尚未验证的情况下,可能会返回 NO。
- (BOOL)clientIsAuthenticated;
customDownloadDirectory
属性允许您指定在应用程序的沙盒内文件下载的位置。这必须是一个本地 NSURL 对象且必须位于应用程序的沙盒内。如果您提供一个无效的文件 URL 或应用程序没有写入权限的 URL,文件将下载到应用程序的缓存目录。缓存目录有时会被系统清除,因此处理下载到缓存中的文件是应用程序的责任。
@property (nonatomic, strong, nullable) NSURL *customDownloadDirectory;
将 downloadsOverwriteLocalConflicts
设置为 YES 以覆盖与 Dropbox 服务器的新下载冲突的本地文件。默认设置为 NO,当存在冲突时返回错误并停止。
@property (nonatomic, assign) BOOL downloadsOverwriteLocalConflicts;
在某些情况下,您可能需要手动下载文件,检查用户是否已登录,或执行任何其他任务。DropboxBrowser 提供了一些专门为此目的的方法。
在某些使用场景中,您可能需要在不直接从 ODBTableViewController
获取用户输入的情况下下载文件。有两种方法可以独立于 ODBTableViewController
触发下载。
第一种是 downloadDropboxFile
,它将提供的文件下载到指定下载文件夹(应用程序的缓存或自定义下载目录)的路径下。完成处理程序提供了一个文件路径。
- (void)downloadDropboxFile:(NSString *)file completion:(void (^)(NSURL *filePath, NSError *error))finishBlock updateProgress:(void (^)(NSNumber *progress))progressChanged;
另一种方法是 downloadDropboxFileData
,它下载文件数据并将其作为 NSData
对象传递给完成处理程序。
- (void)downloadDropboxFileData:(NSString *)file completion:(void (^)(NSData *fileData, NSError *error))finishBlock updateProgress:(void (^)(NSNumber *progress))progressChanged;
如果用户明确请求撤回对其账户的访问,则需要调用此方法。
- (void)clientRequestedLogout;