Google Picker 未按文件扩展名选择

Hey*_*yJC 3 google-drive-api google-drive-picker

给定 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);
));
Run Code Online (Sandbox Code Playgroud)

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

view.setMimeTypes("text/xml");
Run Code Online (Sandbox Code Playgroud)

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

Hey*_*yJC 5

对于那些从谷歌发现这一点,问题并不像愚蠢的,因为它听起来-那里一个(伪)MIME类型在驱动世界各地扩展,但它不是可用以这种方式,至少在机械手。

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

view.setQuery("*.abc");
Run Code Online (Sandbox Code Playgroud)

为了完整性:

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);
));
Run Code Online (Sandbox Code Playgroud)