Tworzę aplikację w pakiecie dla Chrome, którawyświetla określony rodzaj dokumentu jako HTML. Mam aplikację do pewnego stopnia działającą, ale chciałbym dodać funkcję umożliwiającą użytkownikowi otwarcie pliku poprzez kliknięcie łącza do odpowiedniego pliku.
Jestem w stanie uruchomić aplikację według typu MIME zgodnie z dokumentacją tutaji jestem zaznajomiony z pp :: Instance :: HandleDocumentLoad metoda obsługi źródła klikniętego łącza, ale nie jestem pewien, jak wyświetlić kod HTML, który generuję na podstawie przeanalizowanego dokumentu.
Jest to dość łatwe, gdy użytkownik ręcznieuruchamia aplikację i wybiera plik za pomocą elementu wejściowego i systemu plików HTML, ponieważ GUI HTML jest określony w manifeście aplikacji, ale o ile wiem, uruchamianie na podstawie typu MIME po prostu osadza NMF.
TL; DR: Czy istnieje sposób na określenie interfejsu HTML dla (lub prostego sposobu renderowania HTML) instancji modułu NaCl utworzonej przez nacl_modules
manifest wjazdu?
Odpowiedzi:
0 dla odpowiedzi № 1Jest to możliwe, ale to trochę hack. Skopiowałem sztuczkę stąd: https://groups.google.com/d/msg/native-client-discuss/UJu7VXvV_bw/pLc19D50gbwJ
Możesz zobaczyć, jak to zrobiłem tutaj i tutaj:
Zasadniczo słuchasz chrome.tabs.onCreated
i chrome.tabs.onUpdated
, a następnie wstrzykujesz trochę kodu JavaScript, który sprawdza, czy element osadzania ma prawidłowy typ mimetyczny. Jeśli znajdzie element, wysyła wiadomość (przez chrome.runtime.sendMessage
) do Twojego rozszerzenia. Gdy rozszerzenie otrzyma ten komunikat, wstrzykuje resztę kodu JavaScript do strony za pomocą chrome.tabs.executeScript
. W tym momencie możesz wyświetlić cokolwiek chcesz.
Możesz to zrobić wcześniej, wstrzykując kod do każdej strony, ale okazało się, że było to trochę przyjemniejsze, ponieważ wstrzykuje tylko odrobinę kodu.