GoogleDriveBrowser 0.1.4

GoogleDriveBrowser 0.1.4

Shourob Datta 维护。



 
依赖
GoogleAPIClientForREST/Drive~> 1.2.1
Google/SignIn~> 3.0.3
 

  • 作者:
  • Shourob Datta

googledrivebanner

GoogleDriveBrowser 通过 Google Drive SDK 提供简明有效的文件浏览和下载方式。您可以在几分钟内安装 Google Drive Browser,并首先配置 Google 凭据。

特色

  • 浏览并下载 Google Drive 文件。
  • 默认有一个查询文件的基本查询,但您可以自定义您的查询。
  • 您可以使用浏览器(safari)打开文件。
  • 下拉刷新
  • 显示下载进度(包括进度条和标签)
  • 下载成功提示

用户界面

GoogleDriveBrowser 拥有简单的 UITableView 接口。您可以根据需要自定义单元格图标和下载图标。默认情况下,有文件获取的加载指示器,下载进度条和下载进度文字。添加了 tableview 下拉刷新和文件概览功能。

googledrivebrowser

文件

当用户点击下载按钮时,文件将开始下载,并在下载文件时调用代理方法。同时,在成功或失败完成时也会调用代理方法。

文件夹

在遍历文件夹时,会递归地查找,直到找不到文件为止。

项目详情

了解更多关于项目需求、许可、贡献和设置的详细信息。

要求

大于或等于iOS 9

贡献

欢迎任何形式的贡献!您可以通过GitHub上的拉取请求和问题来贡献。

安装 - 通过 Cocoapods

按照以下说明正确集成 GoogleDriveBrowser 到您的项目中。

 pod ‘GoogleDriveBrowser’

Google 配置(Objective-C 和 Swift)

  1. 配置 Google Drive(遵循步骤 1)启用 Drive API并设置您的应用程序。遵循步骤 1

  2. 拖放下载的 Credentials.plist 文件到您的项目中

  3. 打开 Credentials.plist 文件,查找 REVERSE_CLIENT_ID 密钥。复制该键的值,并将其粘贴到配置视图中的 URL Schemes 框中。

在Objective-C中设置

  1. 在 AppDelegate.h 文件中添加以下内容

     #import <Google/SignIn.h> 
    
  2. 在 Appdelegate.m 文件中添加以下代码行。将 YOUR_CLIENT_ID 替换为从 credentials.plist 文件中获取的您的客户端 ID。

     - (BOOL)application:(UIApplication *)application
     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
     // Initialize Google sign-in.
     
     #warning relpace the string with your CLIENT_ID from credentials.plist
     [GIDSignIn sharedInstance].clientID = @"<YOUR_CLIENT_ID>";
     
     return YES;
     }
     
     - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
     return [[GIDSignIn sharedInstance] handleURL:url sourceApplication:sourceApplication annotation:annotation];
     }
    
  3. 在您想要的 .h 文件中的类中添加以下代码

       #import "SDGDTableViewController.h"
    

实现以下内容
SDGDTableViewControllerDelegate 一旦实现,当文件下载或无法下载或进度值发生变化时,你将接收到调用。如下所示:

      @interface YourClassName : UIViewController <SDGDTableViewControllerDelegate>
  1. 在你的所需类中的.m文件中添加以下代码行

    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"SDGD"
                                                     bundle:nil];
    SDGDTableViewController *obj=
        [storyboard instantiateViewControllerWithIdentifier:@"SDGDTableViewController"];
    
    obj.delegate = self;
    UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:obj];
    [self presentViewController:nav animated:YES completion:nil];
    

Swift中的配置

Google配置步骤(Objective-C 和 Swift)

  1. 将以下行添加到你的桥接头文件中

    #import  <GoogleDriveBrowser/SDGDTableViewController.h>
    
  2. 将以下行添加到你的AppDelegate.swift文件中

    import Google
    
  3. 将以下行添加到AppDelegate.swift文件中的应用程序完成启动函数中。将YOUR_CLIENT_ID替换为credentials.plist文件中的客户端ID。

    GIDSignIn.sharedInstance().clientID = "<YOUR_CLIENT_ID>"
    
  4. 将以下函数添加到AppDelegate.swift文件中

    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    return GIDSignIn.sharedInstance().handle(url,
                                            sourceApplication: sourceApplication,
                                            annotation: annotation)
    }
    
    @available(iOS 9.0, *)
    func application(_ app: UIApplication, open url: URL,
                options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
    let sourceApplication = options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String
    let annotation = options[UIApplicationOpenURLOptionsKey.annotation]
    return GIDSignIn.sharedInstance().handle(url,
                                            sourceApplication: sourceApplication,
                                            annotation: annotation)
    
}
  1. 在所需类中添加以下代码行

    var  obj = SDGDTableViewController() ;
    let storyboard : UIStoryboard = UIStoryboard(name: "SDGD", bundle: nil)
    obj = storyboard.instantiateViewController(withIdentifier: "SDGDTableViewController") as! SDGDTableViewController
    obj.delegate = self
    let nav = UINavigationController.init(rootViewController: obj)
    self.present(nav, animated: true, completion: {
    })
    

默认情况下,库图像将在Google文件视图中加载。你可以更改这些图像

安装 - 手动操作(Objective-C 和 Swift)

  • 下载项目,并将SDGDTableViewController.h和SDGDTableViewController.m文件添加到项目中
  • 遵循上述步骤### Google配置(Objective-C 和 Swift)
  • 通过pod包含这些库
  • pod 'GoogleAPIClientForREST/Drive', '~> 1.2.1'
  • pod 'Google/SignIn', '~> 3.0.3'

示例项目运行

  • 下载GoogleDriveBrowser
  • 安装示例文件夹中的podfile
  • 遵循Google配置设置
  • 打开GoogleDriveBrowser.xcworkspace文件并运行项目

代理方法

以下提供了最重要的代理方法。在SDGDTableViewController.h文件中查看更多代理方法

字节逐字节下载进度调用

  /**
  *  File download Progress value . You may use your own progressbar presentation depends on this values
  *  @param downloaded  is download data size instant thread
  *  @param totalDownloaded is  Total downloaded data size
  *  @param fileInfo  from file info you may get file size
  */
 - (void)delegateDownloadProgress: (GTLRDrive_File *)fileInfo downloadByte:(float)downloaded totalRecived : (float)totalDownloaded;

下载成功调用

  /**
   *  Download successfull
   *  Delegate Downloaded Data with File Info.
   *
   */
  - (void)delegateDownloadedFileWithFileDetails: (GTLRDrive_File *)fileInfo downloadedData: (NSData*)data;

自定义查询

  /**
  *  Returns Query parameter.  Like this format
  *   query.fields = @"kind,nextPageToken,files(mimeType,id,kind,name,webViewLink,thumbnailLink,fileExtension,size, createdTime,modifiedTime)";
  *   query.pageSize = 1000;
  *   @param folderID is required for query coommand  Like In parents 'folderID'
  *
  */
  - (GTLRDriveQuery_FilesList *)delegateSetQueryWithFolderID : (NSString*)folderID;

享受GoogleDriveBrowser