2

我有一個Chrome打包的應用程序,它使用chrome.fileSystem API訪問用戶的目錄。它顯示目錄中的所有文件,用戶可以在應用程序中打開和編輯文本文件。 它顯示所有文件甚至是非文本文件(例如圖像),我希望用戶也可以點擊這些文件,但它們應該在Chrome OS標準圖像查看器中打開。Chrome App - 讓系統打開一個文件

有沒有鉻API來做到這一點,就像我可以傳遞文件或文件入口的URL,然後系統執行標準操作的函數?

回答

2

你的直接問題的答案是否定的。相反,您可以執行以下其中一項操作:

  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); 
     } 
    } 
); 
  • (沒試過,所以我猜一個位)傳遞由URL.createObjectURL創建的對象的URL直接到另一個窗口或應用程序窗口內的網頁視圖。
  • 還請注意,您無法訪問您從Chrome應用中所謂Chrome OS的標準圖像瀏覽器。

    相關問題