Google Picker未按文件扩展名选择

时间:2015-12-01 17:07:13

标签: google-drive-api

在Drive中使用(任意)扩展名* .abc给出文件,此代码......

gapi.load("picker", { "callback": function () {
    if (!picker) {
        var view = new google.picker.DocsView(google.picker.ViewId.DOCS);

        view.setMimeTypes("application/vnd.google.drive.ext-type.abc");

        view.setMode(google.picker.DocsViewMode.LIST);
        picker = new google.picker.PickerBuilder();
        picker.setTitle(TEXT.PICKER_PROMPT);
        picker.setAppId(CONST.APP_ID);
        picker.addView(view);
        picker.setOAuthToken(session.OAuthToken.access_token);
        picker.setCallback(pickerCallback);
        picker.setInitialView(view);
    };
    picker.build().setVisible(true);
));

...在驱动器中找不到任何现有的'abc'文件。 这些文件是mime类型的text / xml,以下行可以找到它们:

view.setMimeTypes("text/xml");

为什么扩展搜索不起作用?

2 个答案:

答案 0 :(得分:2)

除了 HeyHeyJC 的回答之外,如果您想使用多个文件扩展名,您可以使用双管道 (||) 分隔每个文件扩展名。

例如,view.setQuery("*.abc || *.def || *.ghi");

答案 1 :(得分:1)

对于那些从谷歌那里发现这个问题的人来说,问题并不像听起来那么愚蠢 - 是驱动器世界中每个分机的(伪)mime类型,但它&# 39;不能以这种方式使用,至少不在Picker中。

可行(即用户友好)的解决方案是在视图上使用查询:

view.setQuery("*.abc");

为了完整性:

gapi.load("picker", { "callback": function () {
    if (!picker) {
        var view = new google.picker.DocsView(google.picker.ViewId.DOCS);

        view.setMimeTypes("text/xml");
        view.setMode(google.picker.DocsViewMode.LIST);
        view.setQuery("*.abc");

        picker = new google.picker.PickerBuilder();
        picker.setTitle(TEXT.PICKER_PROMPT);
        picker.setAppId(CONST.APP_ID);
        picker.addView(view);
        picker.setOAuthToken(session.OAuthToken.access_token);
        picker.setCallback(pickerCallback);
        picker.setInitialView(view);
    };
    picker.build().setVisible(true);
));