首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google :将Feature.MINE_ONLY与Feature.SUPPORT_DRIVES一起使用

Google :将Feature.MINE_ONLY与Feature.SUPPORT_DRIVES一起使用
EN

Stack Overflow用户
提问于 2019-10-04 07:04:30
回答 1查看 863关注 0票数 3

我正在尝试创建一个Google,它显示以下视图:

  1. 一个“文件夹”视图,显示当前用户的文件夹树,允许他只选择当前用户拥有的文件。
  2. 显示当前用户拥有的最新打开的文件的“最近”视图。
  3. 一个“共享驱动器”视图(注:以前命名为"team“),显示当前用户可以访问的共享驱动器(他不是这些文件的所有者,因为共享驱动器文件属于用户的G Suite平台)

Feature.MINE_ONLY 第一次尝试:和 Feature.SUPPORT_DRIVES

我尝试的第一件事是启用MINE_ONLYSUPPORT_DRIVESPickerBuilder上的特性,但是它会导致“共享驱动器”视图为空,因为用户不是共享驱动器中文件的所有者(参见上面的解释)。

第二次尝试:Features.SUPPORT_DRIVE + setOwnedByMe(true)

我尝试的第二件事是只启用SUPPORT_DRIVES特性,并在“文件夹”和“最近”视图上使用setOwnedByMe(true)方法。

它几乎按照预期工作,但是“文件夹”视图没有显示文件夹,因为setOwnedByMe函数不能与setIncludeFolders视图(参考文献)一起调用。

下面是我第二次尝试的代码的简化版本(我故意没有放置身份验证代码):

代码语言:javascript
复制
var googlePicker = new google.picker.PickerBuilder();

// KO: DOES NOT DISPLAY THE FOLDERS
var folderView = new google.picker.DocsView().
    //setIncludeFolders(true). // -> cannot be used with setOwnedByMe, else it overrides it
    setOwnedByMe(true).
    setParent('root');

// OK
var recentFilesView = new google.picker.DocsView(google.picker.ViewId.DOCS).
    setOwnedByMe(true);

// OK
var sharedDriveview = new google.picker.DocsView().
    setIncludeFolders(true).
    setSelectFolderEnabled(false).
    setEnableDrives(true);

googlePicker.enableFeature(google.picker.Feature.SUPPORT_DRIVES); // previously named SUPPORT_TEAM_DRIVES
//googlePicker.enableFeature(google.picker.Feature.MINE_ONLY); // NOT working properly with setEnableDrives

googlePicker.
    addView(folderView).
    addView(recentFilesView).
    addView(sharedDriveview);

googlePicker.build().setVisible(true);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-08 10:16:11

答案:

不幸的是,这似乎是不可能做到的。

推理:

正如你在问题中指出的,这里的问题归结为以下三点:

  1. 要查看共享驱动器,需要将DocsView.setEnableDrives()设置为trueFeature.SUPPORT_DRIVES需要打开。这可以与DocsView.setOwnedByMe()DocsView.setInculudeFolders()单独使用。
  2. 要查看当前用户拥有的文件,需要将DocsView.setOwnedByMe()设置为true,或者Feature.MINE_ONLY需要打开。Docsview.setOwnedByMe()可以与DocsView.setEnableDrives()一起使用,但不能与DocsView.setIncludeFolders()一起使用
  3. 要查看驱动器视图中的文件夹,需要将DriveView.setIncludeFolders()设置为true,但不能同时设置DriveView.setOwnedByMe(),因为在设置DriveView.setIncludeFolders()时忽略DriveView.setOwnedByMe()的值。

可能的解决办法:

由于Picker一次只能呈现一个视图,因此您可以创建一种方法,在创建Picker之前从用户那里获取是否访问共享驱动器或个人驱动器的信息,并设置自定义呈现的功能和包含。这可以通过多种方式(例如按钮、HTML单选按钮或引导选项卡)来完成,这些更改在页面上是可见的。

特征请求:

我已经提出了一个功能要求为您代表谷歌的问题跟踪器。这个功能请求可以找到这里,您可以在左上角给一个星星(☆),让谷歌知道更多的人希望这个请求。

参考文献:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58231453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档