Как остановить автоматический выбор интерфейса Google Drive Picker после выбора определенного файла? - PullRequest
0 голосов
/ 17 октября 2018

По умолчанию Google Picker закрывается автоматически, если я выбираю какой-либо файл (csv или text или xls).Я хочу, чтобы он закрывался только в том случае, если расширение имеет формат 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);
}

1 Ответ

0 голосов
/ 18 октября 2018

В API выбора есть метод указания выбираемых типов MIME.

PickerBuilder.setSelectableMimeTypes (string)

Установить список типов 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 (string)

Для представлений со списком документов установите типы 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();
...