我有谷歌驱动器选择器,我在我的应用程序上使用它来选择文件。这些天一直在工作,突然停止工作(选择器只是空白,铬冻结)。以下是我使用的代码 -
function showPicker(pickerOptions, callback, callbackScope) {
var me = this;
var pickerBuilder = new google.picker.PickerBuilder();
pickerBuilder.setOAuthToken(google.Google.getGoogleUser().getAuthResponse().access_token);
pickerBuilder.enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES);
// This feature need to be set to force `setParent` work.
// Seems to be Drive Picker's bug
pickerBuilder.enableFeature(google.picker.Feature.MULTISELECT_ENABLED);
pickerBuilder.setRelayUrl(window.location.protocol + '//' + window.location.host);
pickerBuilder.setOrigin(window.location.protocol + '//' + window.location.host);
// if ( pickerOptions.document ) {
// pickerBuilder.setDocument(pickerOptions.document);
// }
if ( pickerOptions.title ) {
pickerBuilder.setTitle(pickerOptions.title);
}
if ( pickerOptions.enableMyDrive ) {
var myDrive = new google.picker.DocsView(google.picker.ViewId[pickerOptions.viewType] || google.picker.ViewId.DOCS)
.setIncludeFolders(true)
.setLabel('My Drive');
if ( pickerOptions.selectFolderEnabled ) {
myDrive.setSelectFolderEnabled(true);
}
me._setPickerViewMode(myDrive, pickerOptions.viewMode);
if ( pickerOptions.mimeTypes ) {
myDrive.setMimeTypes(pickerOptions.mimeTypes);
}
pickerBuilder.addView(myDrive);
}
if ( !pickerOptions.tabs ) {
// Let users to select files from any Team Drive
var multiTeamDrive = new google.picker.DocsView(google.picker.ViewId[pickerOptions.viewType] || google.picker.ViewId.DOCS)
.setIncludeFolders(true)
.setEnableTeamDrives(true)
.setLabel('Team Drives');
if ( pickerOptions.selectFolderEnabled ) {
multiTeamDrive.setSelectFolderEnabled(true);
}
me._setPickerViewMode(multiTeamDrive, pickerOptions.viewMode);
if ( pickerOptions.mimeTypes ) {
multiTeamDrive.setMimeTypes(pickerOptions.mimeTypes);
}
pickerBuilder.addView(multiTeamDrive);
} else {
for ( var i = 0; i < pickerOptions.tabs.length; i++ ) {
var tab = pickerOptions.tabs[i];
if ( tab.label ) {
// Label is the minimum required
var view = new google.picker.DocsView(google.picker.ViewId[tab.viewType] || google.picker.ViewId[pickerOptions.viewType] || google.picker.ViewId.DOCS)
.setIncludeFolders(true)
.setEnableTeamDrives(true);
if ( pickerOptions.selectFolderEnabled ) {
view.setSelectFolderEnabled(true);
}
if ( tab.parent ) {
view.setParent(tab.parent);
}
me._setPickerViewMode(view, tab.viewMode || pickerOptions.viewMode);
if ( tab.mimeTypes || pickerOptions.mimeTypes ) {
view.setMimeTypes(tab.mimeTypes || pickerOptions.mimeTypes);
}
view.setLabel(tab.label);
pickerBuilder.addView(view);
}
}
}
if ( pickerOptions.upload && pickerOptions.upload.enabled ) {
// Force users to upload files to a specific Team Drive
var uploadView = new google.picker.DocsUploadView();
if ( pickerOptions.upload.parent ) {
uploadView.setParent(pickerOptions.upload.parent);
}
if ( pickerOptions.upload.label ) {
uploadView.setLabel(pickerOptions.upload.label);
}
if ( pickerOptions.upload.mimeTypes || pickerOptions.mimeTypes ) {
view.setMimeTypes(pickerOptions.upload.mimeTypes || pickerOptions.mimeTypes);
}
pickerBuilder.addView(uploadView);
}
})
var picker = pickerBuilder.build();
picker.setVisible(true);
var elements= document.getElementsByClassName('picker-dialog');
for(var i=0;i<elements.length;i++)
{
elements[i].style.zIndex = "99999999999999";
}
}
它在我的本地主机上打开(虽然加载速度有点慢)。我看到的唯一区别是 oauthToken。这可能是一个原因吗?
提前致谢!