5

Ten problem rozpoczął się od wersji 23 przeglądarki Google Chrome. Moja aplikacja Chrome otwiera zakładkę do wyświetlania interfejsu użytkownika po uruchomieniu uruchomionego wydarzenia.Otwórz aplikację Chrome na karcie

chrome.app.runtime.onLaunched.addListener(function() 
{ 
    chrome.tabs.create(
    { 
     url: "../../index.html" 
    }); 
}); 

Ten schemat działał wcześniej niż wersja 23 przeglądarki Google Chrome. Otrzymuję następujący wyjątek podczas uruchamiania aplikacji.

Error in event handler for 'app.runtime.onLaunched': Cannot call method 'create' of undefined TypeError: Cannot call method 'create' of undefined 

Po sprawdzeniu obiektu w dostarczaniu narzędzi programistycznych chrome Zauważyłem, że chrome.tabs jest niezdefiniowany.

Wiem, że nie muszę jawnie ustawić uprawnienia "zakładki" w moim manifeście.json, ponieważ zgodnie z http://developer.chrome.com/extensions/tabs.html metody tworzenia, aktualizacji i usuwania nie wymagają uprawnień "zakładki".

Po próbie jawnego dodania uprawnienia "zakładki" do pliku manifest.json, otrzymuję tę wiadomość w chrome: // chrome/extensions/dla aplikacji.

There were warnings when trying to install this extension: 'tabs' is only allowed for extensions and legacy packaged apps, and this is a packaged app. 

Jeśli jadę na wykresie podany przez https://developers.google.com/chrome/web-store/docs/choosing i wybrali aplikację w pakiecie, ponieważ moja aplikacja UI nie jest mała, a ja nie zamierzam na rozszerzenie UI Chrome i nie mogę skorzystać z chrome.tabs następnie w jaki sposób można otworzyć interfejsu mojej aplikacji wewnątrz nowej lub istniejącej zakładki bez konieczności tworzenia okna podręcznego (co jest bardzo denerwujące i nie przyjazne dla użytkownika)?

+0

Nie widzę istnieje API 'chrome.app.runtime' dla rozszerzeń Chrome, jest ona dostępna tylko dla aplikacji Chrome. http://developer.chrome.com/apps/api_index.html –

+0

racja, jest to aplikacja w pakiecie. –

+0

Więc nie ma żadnego API "chrome.tabs" dla aplikacji w pakiecie, jak sądzę. http://developer.chrome.com/apps/api_index.html –

Odpowiedz

8

Czy próbowałeś window.open() w chrome.app.runtime.onLaunched

+0

Mogę potwierdzić, że zadziałało to dla mnie: pamiętaj tylko, aby wpisać nazwę pliku, który chcesz otworzyć w nawiasach !!! –

+0

To nie jest obsługiwane i należy go unikać. https://code.google.com/p/chromium/issues/detail?id=252464 – oldergod