0

我有谷歌驱动器选择器,我在我的应用程序上使用它来选择文件。这些天一直在工作,突然停止工作(选择器只是空白,铬冻结)。以下是我使用的代码 -

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。这可能是一个原因吗?

提前致谢!

4

0 回答 0