【问题标题】:Chrome App - Let the system open a fileChrome App - 让系统打开一个文件
【发布时间】:2014-11-22 07:03:34
【问题描述】:

我有一个使用 chrome.fileSystem API 访问用户目录的 chrome 打包应用程序。它显示目录中的所有文件,用户可以在应用程序中打开和编辑文本文件。 它显示所有文件,甚至不是文本文件(例如图像),我希望用户也可以点击这些文件,但它们应该在 Chrome OS 标准图像查看器中打开。

是否有chrome API可以做到这一点,比如我可以将文件的URL或文件条目传递给的函数,然后系统执行标准操作?

【问题讨论】:

    标签: javascript google-chrome google-chrome-app html5-filesystem google-chrome-os


    【解决方案1】:

    您的直接问题的答案是否定的。相反,您可以执行以下操作之一:

    1. 获取文件扩展名,并据此适当显示文件。

    2. 调用chrome.mediaGalleries.getMetadata 确定媒体类型,并以此为基础采取行动。

    以下代码取自我为我的书编写的示例应用程序,它不处理一般情况,因为它处理的文件只是图像、视频或音频,但它提供了一些关于如何处理的指导使用此 API:

    chrome.mediaGalleries.getMetadata(file, {},
        function (metadata) {
            if (metadata && metadata.mimeType) {
                var element;
                var mediaType = metadata.mimeType.split('/')[0];
                var elementName = mediaType === 'image' ? 'img' : mediaType;
                element = document.createElement(elementName);
                element.setAttribute("controls", "controls");
                viewDiv.appendChild(element);
                element.style['max-width'] = '700px';
                element.style['max-height'] = '700px';
                element.src = URL.createObjectURL(file);
            }
        }
    );
    
    1. (没试过,所以我猜了一下。)将URL.createObjectURL 创建的对象 URL 直接传递到另一个窗口或应用程序窗口中的 web 视图。

    另请注意,您无法从 Chrome 应用程序中访问所谓的 Chrome OS 标准图像查看器。

    【讨论】:

      猜你喜欢
      • 2016-01-23
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      • 2023-03-20
      相关资源
      最近更新 更多