我正在尝试创建一个显示以下视图的 Google Drive Picker:
“文件夹”视图,显示当前用户的文件夹树,允许他只选择当前用户拥有的文件
“最近”视图,显示当前用户拥有的最新打开的文件
“共享云端硬盘”视图(注意:以前称为“团队云端硬盘”),显示当前用户有权访问的共享云端硬盘(他不是文件的所有者,因为共享云端硬盘文件归 G Suite 平台所有用户)
第一次尝试:Feature.MINE_ONLY
与Feature.SUPPORT_DRIVES
我尝试的第一件事是同时启用MINE_ONLY
和SUPPORT_DRIVES
上的功能PickerBuilder
,但是这会导致“共享驱动器”视图为空,因为用户不是共享驱动器中文件的所有者(请参阅上面的说明)。
第二次尝试:Features.SUPPORT_DRIVE
+setOwnedByMe(true)
我尝试的第二件事是仅启用该SUPPORT_DRIVES
功能,并setOwnedByMe(true)
在“文件夹”和“最近”视图上使用该方法。
它几乎可以按预期工作,但是“文件夹”视图没有显示文件夹,因为该setOwnedByMe
函数不能与setIncludeFolders
视图(参考)一起调用。
以下是我第二次尝试的代码的简化版本(我故意没有放验证码):
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);