3

我爲Google Chrome網絡瀏覽器創建了一個Native Client應用程序,該應用程序可播放特殊類型的音頻文件。大;該部分在這一點上工作得很好。爲特定MIME類型加載Native Client Chrome擴展

我準備好進入下一個階段 - 與世界分享這個應用程序。我需要這部分的幫助。

根據我的理解,分發此應用程序的最佳方法是將其打包爲Chrome擴展程序,將其上傳到Chrome網上應用店(CWS),並使用包含音頻文件的網站進行內聯安裝。此外,this page describes how to associate MIME types with NaCl extensions。我爲這種文件類型設計了一個自定義的MIME類型。

因此,這裏是我的問題(我認爲):如何從擴展內加載本機客戶端應用程序?

當我在本地開發這個程序時,有一個<嵌入>標記,其「src」屬性引用指向.nexe文件的.nmf文件。嵌入標籤還有其他參數傳遞給NaCl應用程序。在擴展場景中,.nmf和.nexe文件(以及圖標和manifest.json文件)位於擴展中。

在擴展場景中,網頁如何指定擴展中的NaCl應用程序需要加載?通過嵌入標籤或其他機制?我是否應該直接加載文件URL並相信MIME類型將調用NaCl擴展?

我很抱歉如果這個問題令人困惑 - 這是一個不真正知道要問的正確問題的情況。

回答

4

您需要加載一個頁面或MIME類型的內容,瀏覽器將調用NaCl擴展並調用HandleDocumentLoad方法。

+0

'HandleDocumentLoad'給了我一個重要的線索。這意味着我需要在窗口中自行加載數據,同時還有一個帶有其他元素的網頁。這是我不知道該怎麼做的。不過,我剛纔發現< iframe >允許我這樣做。但是我不能讓HandleDocumentLoad()函數在我的NaCl插件中觸發。此外,NaCl SDK爲Instance_HandleDocumentLoad()生成的樣板代碼明確指出:「該函數不在NaCl模塊上調用......實質上是一個佔位符」。然後,Chrome代碼再次爲此提供了一個測試案例。 –

+0

對上述評論的修改:我的資源在擴展文件夾中未正確放置。我認爲這種方法可能有效。 –

+0

成功!你的回答給了我構建工作解決方案所需的線索。謝謝。 –