2016-02-17 6 views
0

Я разрабатываю пакетное приложение Chrome, которое отображает определенный вид документа как HTML. У меня есть приложение, работающее в некоторой степени, но хотелось бы добавить функцию, позволяющую пользователю открыть файл, щелкнув ссылку на соответствующий файл.Интерфейс модуля NaCl HTML

Я могу запустить приложение по типу MIME в соответствии с Документами here, и я знаком с методом pp::Instance::HandleDocumentLoad для обработки источника, по которым щелкнули ссылку, но я не уверен, как отображать HTML я генерирующий из разобранного документа.

Это достаточно легко сделать, когда пользователь вручную запускает приложение и выбирает файл с использованием элемента ввода и файловой системы HTML, поскольку в манифесте приложения указан графический интерфейс HTML, но, насколько я могу судить, запуск основанный на типе MIME, просто внедряет NMF.

TL; DR: Есть ли способ указать HTML интерфейс (или простой способ сделать HTML из) модуля экземпляр NaCl, созданный nacl_modules манифеста записи?

ответ

0

Это возможно, но это немного взломать. Я скопировал трюк здесь: https://groups.google.com/d/msg/native-client-discuss/UJu7VXvV_bw/pLc19D50gbwJ

Вы можете увидеть, как я сделал это here и here:

В принципе, вы слушаете на chrome.tabs.onCreated и chrome.tabs.onUpdated, то вы впрыснуть маленький кусочек JavaScript, который проверяет врезать элемент с правильным типом. Если он найдет элемент, он отправит сообщение (через chrome.runtime.sendMessage) на ваш добавочный номер. Когда ваше расширение получает это сообщение, оно добавляет остальную часть вашего JavaScript на страницу, используя chrome.tabs.executeScript. На этом этапе вы можете отображать все, что хотите.

Вы могли бы сделать это раньше, введя свой код на каждую страницу, но я обнаружил, что это было немного лучше, поскольку оно только вводило небольшой код.

+0

Похоже на работоспособное решение для расширения, но я уверен, что это не сработает для приложения. – benjineer

+1

А, я пропустил эту часть, извините. Вы можете указать file_handlers в манифесте: см. Https://developer.chrome.com/apps/manifest/file_handlers. Похоже, что это может поддерживаться только для просмотра файлов в ChromeOS. – binji

+0

Файловые обработчики могут на самом деле быть способ пойти, я должен иметь возможность загрузить документ в файловую систему в Интернете, если это не ссылка 'file: //'. Я думаю, что часть «только для ChromeOS» относится к обработке файлов, но я может быть неправильным. Вы проверите это. – benjineer