我正在创建一个应用程序,我需要在其中提供 Drive Picker 小部件,以便用户可以上传一些文件。现在我想限制用户,以便他们只能从“团队驱动器”中选择文件,而不能从其他任何地方选择文件。
我尝试过添加方法onPickerInit
event.
这是我被调用的函数onPickerInit
event,
function fetchFolder(widget, pickerBuilder) {
pickerBuilder.addView(new google.picker.DocsView()
.setParent('TeamDriveId')
.setIncludeFolders(true));
}
此方法限制用户只能从特定的团队云端硬盘中进行选择,但是我的问题是我如何提供动态选项,以便用户可以从任何团队云端硬盘中进行选择,而不仅限于一个团队云端硬盘。此外,他们不应该能够从自己的 Google 云端硬盘中进行选择。
看来这种情况需要低级别的驱动器选择器调整,所以让我们从删除应用程序制作工具为我们提供的开箱即用的所有设置开始:
- 删除所有功能
- 删除所有视图
- 然后将以下脚本添加到
onPickerInit
event
// Enable Team Drives
pickerBuilder.enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES);
// Let users to select files from any Team Drive
var multiTeamDrive = new google.picker.DocsView();
multiTeamDrive.setIncludeFolders(true)
.setEnableTeamDrives(true);
pickerBuilder.addView(multiTeamDrive);
// This feature need to be set to force `setParent` work.
// Seems to be Drive Picker's bug
pickerBuilder.enableFeature(google.picker.Feature.MULTISELECT_ENABLED);
// Force users to upload files to a specific Team Drive
var uploadView = new google.picker.DocsUploadView();
uploadView.setParent('Fancy KEY from Team Drive folder URL')
.setLabel('Upload to Team Drive XXX');
pickerBuilder.addView(uploadView);
Result
Notes
- 我没有找到隐藏个人云端硬盘上传选项卡的方法。奇怪的是App Maker默认添加它并且没有选项删除它。
- 我还建议为用户选择的文件添加服务器端验证,以确保它们源自 Team Drive。
类似/相关答案:https://stackoverflow.com/a/49677679/454137
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)