【问题标题】:How do I stop the Google Drive Picker UI to close automatically after choosing particular file?选择特定文件后,如何阻止 Google Drive Picker UI 自动关闭?
【发布时间】:2018-10-18 22:14:54
【问题描述】:

默认情况下,如果我选择任何文件(csv 或 text 或 xls),Google Picker 会自动关闭。我希望它只有在扩展名是 csv 格式时才应该关闭。

请建议我需要在我的代码中进行哪些更改。

function pickerCallback(data) {
    var url = 'nothing';
    var file_Id = '';
    var fileType = '';
    if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) {
        var doc = data[google.picker.Response.DOCUMENTS][0];
        console.log(doc);
        url = doc[google.picker.Document.URL];
        file_Id = doc.id;
        fileType = doc.mimeType;
        if (fileType != "text/csv") {
            alert("Error: Selected item is not CSV file");
            // Google Picker closes automatically - Problem
            // Restrict Google Picker from closing here
        } else {
            // Google Picker closes automatically - OK
            downloadfile(file_Id); // function to perform on fetched file
        }
    }
    var message = 'You picked: ' + url + ' having File Id: ' + file_Id;
    console.log(message);
}

【问题讨论】:

    标签: javascript google-drive-api picker google-picker


    【解决方案1】:

    Picker API 有一种指定可选 MIME 类型的方法。

    PickerBuilder.setSelectableMimeTypes(字符串)

    设置可选择的 MIME 类型列表。如果需要多个 MIME 类型,请使用逗号分隔。

    https://developers.google.com/picker/docs/reference#PickerBuilder

    示例

    const view = new window.google.picker.DocsView();
    const picker = new window.google.picker.PickerBuilder()
      .addView(view)
      .setSelectableMimeTypes('text/csv')
      .setCallback(pickerCallback)
      .build();
    

    您可以选择限制应显示的 MIME 类型,以便用户只能看到 text/csv 文件。

    View.setMimeTypes(字符串)

    对于列出文档的视图,设置将包含在视图中的 MIME 类型。如果需要多个 MIME 类型,请使用逗号分隔。

    https://developers.google.com/picker/docs/reference#View

    示例

    const view = new window.google.picker.DocsView().setMimeTypes('text/csv');
    const picker = new window.google.picker.PickerBuilder()
      .addView(view)
      .setCallback(pickerCallback)
      .build();
    

    【讨论】:

      猜你喜欢
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      • 2015-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多