Jeśli nie znajdziesz tu odpowiedzi na swoje pytanie, zapoznaj się z Najczęstszymi pytaniami dotyczącymi Chrome Web Store, [google-chrome-extension] w Stack Overflow, grupie chromium-extensions lub pomocy sklepu.
Ogólne
Co to są rozszerzenia do Google Chrome?
Rozszerzenia do Google Chrome to aplikacje, które działają w przeglądarce Chrome i udostępniają dodatkowe funkcjonalność, integrację z witrynami i usługami innych firm, a także spersonalizowane przeglądanie i aplikacji.
Jak skonfigurować Chrome na potrzeby tworzenia rozszerzeń?
Jeśli używasz wersji Chrome, która obsługuje rozszerzenia, masz już wszystko musisz utworzyć własne rozszerzenie. Zacznij od włączenia trybu programisty.
Kliknij ikonę menu Chrome i z menu Narzędzia wybierz Rozszerzenia. Upewnij się, że „Tryb programisty” zaznaczone w prawym górnym rogu. Teraz możesz ponownie załadować stronę np. aby wczytać rozpakowany katalog plików tak, jakby był to rozszerzenie w pakiecie. Dla pełny samouczek, można znaleźć w artykule Pierwsze kroki.
Jakie technologie są wykorzystywane do tworzenia rozszerzeń do Chrome?
Rozszerzenia są napisane przy użyciu tych samych standardowych technologii internetowych, których programiści używają do tworzenia witryn. HTML jest używany jako język znaczników treści, CSS do określania stylu, a JavaScript do skryptu. Chrome obsługuje HTML5 i CSS3, więc deweloperzy mogą korzystać z najnowszej otwartej sieci takich jak kanwy i animacje CSS w rozszerzeniach. Rozszerzenia mają też dostęp do: kilka interfejsów API JavaScript, które pomagają w wykonywaniu takich funkcji jak kodowanie JSON i interakcja z z przeglądarki.
Czy rozszerzenia są pobierane z internetu przy każdym ładowaniu przeglądarki?
Rozszerzenia są pobierane przez przeglądarkę Chrome w momencie instalacji, a następnie uruchamiane na dysku lokalnym w celu zwiększenia wydajności. Jeśli jednak zostanie wysłana nowa wersja rozszerzenia zostanie automatycznie pobrany w tle wszystkim użytkownikom, którzy mają Zainstalowano. Rozszerzenia mogą też wysyłać żądania dostępu do treści zdalnych w dowolnym momencie, za pomocą usługi sieciowej lub pobierać nowe treści z internetu.
Jak sprawdzić, która wersja Chrome jest wdrożona w jakim kanale?
Aby sprawdzić, która wersja Chrome jest obecnie dostępna na poszczególnych platformach, otwórz stronę omahaproxy.appspot.com. Dane w tej witrynie będą w formacie podobnym do:
cf,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,canary,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
Każdy wiersz zawiera informacje o innej kombinacji platformy i kanału. Wymienione
Platformy to cf
(Google Chrome Frame), linux
, mac
, win
i cros
(Google ChromeOS).
kanały to canary
, dev
, beta
i stable
. Dwie czteroczęściowe liczby po argumencie
reprezentuje obecną i poprzednie wersje Chrome wdrożone na tym kanale
. Pozostałe informacje to metadane dotyczące daty premiery,
oraz numery wersji powiązane z każdą kompilacją.
Możliwości
Czy rozszerzenia mogą wysyłać żądania Ajax między domenami?
Tak. Rozszerzenia mogą wysyłać żądania pomiędzy domenami. Więcej informacji znajdziesz na tej stronie.
Czy rozszerzenia mogą korzystać z usług internetowych innych firm?
Tak. Rozszerzenia mogą tworzyć żądania Ajax między domenami, co pozwala wywoływać zdalne interfejsy API. bezpośrednio. Szczególnie łatwe w użyciu są interfejsy API, które udostępniają dane w formacie JSON.
Czy rozszerzenia mogą kodować/dekodować dane JSON?
Tak. V8 (mechanizm JavaScript w Chrome) natywnie obsługuje JSON.stringify i JSON.parse, może używać tych funkcji w rozszerzeniach w sposób opisany tutaj bez podawania żadnych dodatkowych Biblioteki JSON w kodzie.
Czy rozszerzenia mogą przechowywać dane lokalnie?
Tak, rozszerzenia mogą używać localStorage do trwałego przechowywania danych ciągu znaków. Korzystanie z wbudowanych przeglądarek Chrome w formacie JSON możesz przechowywać w lokalnej pamięci masowej złożone struktury danych. Rozszerzenia, które muszą wykonywania zapytań SQL na przechowywanych danych Chrome implementuje bazy danych SQL po stronie klienta, które informacji, które można wykorzystać.
Czy rozszerzenia mogą korzystać z protokołu OAuth?
Tak. Istnieją rozszerzenia, które korzystają z protokołu OAuth, aby uzyskiwać dostęp do zdalnych interfejsów API danych. Większość deweloperów użyj biblioteki JavaScript OAuth, aby uprościć proces podpisywania protokołu OAuth. żądań.
Czy rozszerzenia mogą tworzyć interfejs poza renderowaną stroną internetową?
Tak, rozszerzenie może dodawać przyciski do interfejsu użytkownika przeglądarki Chrome. Zobacz przeglądarkę działania i działania na stronie.
Rozszerzenie może też tworzyć wyskakujące okienka z powiadomieniami widoczne poza oknem przeglądarki. Zobacz powiadomień na pulpicie.
Czy rozszerzenia mogą nasłuchiwać kliknięć kart i przycisków nawigacyjnych Chrome?
Nie. Rozszerzenia mogą jedynie nasłuchiwać zdarzeń opisanych w dokumentacji interfejsu API.
Czy dwa rozszerzenia mogą się ze sobą komunikować?
Tak, rozszerzenia mogą przekazywać wiadomości do innych rozszerzeń. Zapoznaj się z dokumentacją dotyczącą przekazywania wiadomości. .
Czy rozszerzenia mogą korzystać z Google Analytics?
Tak. Rozszerzenia są tworzone tak samo jak witryny, więc mogą za pomocą Google Analytics śledzić i ich wykorzystaniu. Należy jednak zmodyfikować kod śledzenia, aby pobierać wersję HTTPS Google Analytics bibliotece. Więcej informacji na ten temat znajdziesz w tym samouczku.
Czy rozszerzenia mogą modyfikować adresy URL chrome://?
Nie. Interfejsy API rozszerzeń zostały zaprojektowane tak, aby zminimalizować problemy ze zgodnością wsteczną, które mogą wystąpić
po przesłaniu nowych wersji przeglądarki. Zezwolenie na skrypty treści w chrome://
adresach URL oznaczałoby
że programiści na tych stronach bazują na DOM, CSS i JavaScript.
W najlepszym przypadku nie udało się zaktualizować tych stron, ponieważ są one aktualizowane teraz.
W najgorszym przypadku może to oznaczać, że aktualizacja jednej z tych stron może spowodować rozszerzenie
powodują problemy z działaniem niektórych elementów przeglądarki.
Zastępowanie treści hostowanych pod tymi adresami URL jest dozwolone, ponieważ zmusza dewelopera rozszerzenia do wdrożenia wszystkich potrzebnych funkcji. implementacji przez przeglądarkę.
Czy rozszerzenia mogą otwierać wyskakujące okienka z działaniami na stronie lub w przeglądarce bez interakcji użytkownika?
Nie. Wyskakujące okienka mogą się otwierać tylko wtedy, gdy użytkownik kliknie odpowiednią stronę lub działanie w przeglądarce. An nie może automatycznie otworzyć wyskakującego okienka.
Czy rozszerzenia mogą utrzymywać wyskakujące okienka, gdy użytkownik je opuści?
Nie. Wyskakujące okienka zamykają się automatycznie, gdy użytkownik zaznaczy obszar przeglądarki poza . Wyskakujące okienko nie może pozostać otwarte po tym, gdy użytkownik opuści stronę.
Czy rozszerzenia można powiadamiać o ich instalowaniu lub odinstalowywaniu?
Możesz nasłuchiwać zdarzenia runtime.onInstalled, aby otrzymać powiadomienie, gdy rozszerzenie zostanie po zainstalowaniu lub zaktualizowaniu, jak również po zaktualizowaniu Chrome. Nie ma powiązanego zdarzenia, kiedy: rozszerzenie zostało odinstalowane.
Programowanie
Jak utworzyć interfejs mojego rozszerzenia?
Rozszerzenia do określania swoich interfejsów użytkownika korzystają z kodu HTML i CSS, dzięki czemu możesz korzystać ze standardowych elementów sterujących formularza. do utworzenia interfejsu użytkownika lub stylu interfejsu za pomocą CSS, tak jak w przypadku strony internetowej. Dodatkowo rozszerzenia może dodać pewne ograniczone elementy interfejsu do Chrome.
Ile danych mogę przechowywać w localStorage?
Rozszerzenia mogą przechowywać do 5 MB danych w lokalnej pamięci masowej.
Jak utworzyć menu opcji dla mojej aplikacji?
Możesz zezwolić użytkownikom na ustawianie opcji Twojego rozszerzenia, tworząc stronę opcji. prosta strona HTML, która zostanie wczytana po kliknięciu przez użytkownika opcji rozszerzenia. Ta strona może odczytywać i zapisywać ustawienia w localStorage, a nawet wysyłać opcje do serwera WWW, aby mogą być trwałe i trwałe w różnych przeglądarkach.
Z jakich narzędzi do debugowania mogą korzystać deweloperzy rozszerzeń?
Za pomocą wbudowanych narzędzi dla programistów Chrome można debugować rozszerzenia i strony internetowe. Zobacz to samouczek na temat debugowania rozszerzeń.
Dlaczego dopasowania symboli wieloznacznych nie działają w przypadku domen najwyższego poziomu?
Nie możesz używać wzorców dopasowania wieloznacznych, takich jak http://google.*/*
, aby dopasować domeny najwyższego poziomu (na przykład
http://google.es
i http://google.fr
) ze względu na złożoność faktycznego ograniczania
by dopasowywać je tylko do odpowiednich domen.
W przykładzie domeny http://google.*/*
domeny Google byłyby dopasowane, ale tak samo
http://google.someotherdomain.com
Ponadto wiele witryn nie posiada wszystkich domen najwyższego poziomu
w Twojej domenie. Załóżmy na przykład, że chcesz użyć wyrażenia http://example.*/*
, aby dopasować ciąg http://example.com
i http://example.es
, ale http://example.net
jest witryną nieprzyjazną. Jeśli rozszerzenie zawiera błąd,
wroga witryna może potencjalnie zaatakować rozszerzenie i uzyskać dostęp do
zwiększenia uprawnień.
Musisz wyraźnie wymienić domeny najwyższego poziomu, w których chcesz wyświetlać rozszerzenie.
Dlaczego interfejs API zarządzania nie uruchamia zdarzeń, gdy moje rozszerzenie jest instalowane lub odinstalowane?
Interfejs API do zarządzania miał pomagać w tworzeniu rozszerzeń zastępujących strony nowych kart. Nie ma uruchamiać zdarzenia instalacji/odinstalowywania bieżącego rozszerzenia.
W jaki sposób rozszerzenie może określić, czy jest uruchamiane po raz pierwszy?
Możesz nasłuchiwać zdarzenia runtime.onInstalled. Przeczytaj ten artykuł z najczęstszymi pytaniami.
Funkcje i błędy
Chyba znalazłam błąd! Jak mogę się upewnić, że problem zostanie rozwiązany?
Podczas tworzenia rozszerzenia możesz zauważyć zachowanie, które nie pasuje do tego rozszerzenia dokumentacji i może być wynikiem błędu w Chrome. Najlepiej jest zadbać o to, został wysłany odpowiedni raport o problemie, a zespół Chromium ma wystarczającą ilość danych, aby odtworzyć zachowanie użytkownika.
Wykonaj te czynności, aby mieć pewność, że:
- Stwórz minimalne rozszerzenie testowe, które pozwoli zademonstrować zgłaszany problem. Ten powinno zawierać jak najmniej kodu umożliwiającego zademonstrowanie błędu. Zwykle jest to Nie więcej niż 100 wierszy kodu. Deweloperzy często nie są w stanie odtworzyć problemów, co będzie dobrym wskazówką, że błąd znajduje się w ich własnym kodzie.
- Przeszukaj rejestr problemów na http://crbug.com, by sprawdzić, czy ktoś nie zgłosił podobnego
Google Cloud. Większość problemów związanych z rozszerzeniami jest zgłaszana w sekcji component=Platform>Extensions, dlatego
poszukaj błędu rozszerzenia związanego na przykład z funkcją chrome.tabs.executeScript),
wyszukaj „
component=Platform>Extensions Type=Bug chrome.tabs.executeScript
”, co zwróci tę listę wyników. - Jeśli znajdziesz błąd, który opisuje Twój problem, kliknij ikonę gwiazdki, aby otrzymać powiadomienie, otrzyma aktualizację. Nie odpowiadaj na komunikat o błędzie, mówiąc „Ja też” lub zapytaj „Kiedy to będzie naprawiony?”; mogą one spowodować wysłanie setek e-maili. Dodaj komentarz tylko wtedy, gdy masz informacje (takie jak lepszy przypadek testowy lub sugerowana poprawka), które mogą okazać się przydatne.
- Jeśli nie znajdziesz odpowiedniego błędu, który można oznaczyć gwiazdką, prześlij nowe zgłoszenie problemu na http://crbug.com/new. Wypełnij ten formularz jak najwyraźniej: wybierz opisowy tytuł, wyjaśnij czynności, które należy wykonać, aby odtworzyć błąd oraz opisać oczekiwane i rzeczywiste zachowanie. Dołącz test do raportu. W razie potrzeby dodaj zrzuty ekranu. Im łatwiej będzie im tym większa szansa na szybkie jego usunięcie.
- Poczekaj na zaktualizowanie błędu. Większość nowych błędów jest sklasyfikowana w ciągu tygodnia, chociaż czasami Czasem aktualizacja trwa dłużej. Nie odpowiadaj na zgłoszenie o błędzie z pytaniem, kiedy pojawi się problem. naprawiony. Jeśli błąd nie zostanie zmodyfikowany w ciągu dwóch tygodni, zamieść wiadomość na grupę dyskusyjną zawierającą link do błędu.
- Jeśli błąd został pierwotnie zgłoszony na grupie dyskusyjnej i został przekierowany do tego artykułu z najczęstszymi pytaniami, odpowiedzieć w pierwotnym wątku, podając link do błędu zgłoszonego przez Ciebie lub oznaczonego gwiazdką. Dzięki temu użytkownicy, którzy mają ten sam problem, mogą łatwiej znaleźć właściwą odpowiedź.
Mam prośbę o dodanie funkcji. Jak mogę to zgłosić?
Po zidentyfikowaniu funkcji (zwłaszcza jeśli jest ona związana z eksperymentalnym interfejsem API), którą można dodać do ulepszyć proces tworzenia rozszerzenia, upewnij się, że w problemie jest złożona odpowiednia prośba. trackera.
Wykonaj te czynności, aby mieć pewność, że:
- Przeszukaj rejestr problemów na http://crbug.com, by sprawdzić, czy ktoś nie poprosił o
w przypadku podobnych funkcji. Większość próśb związanych z rozszerzeniami składa się z:
component=Platform>Extensions, więc można wyszukać prośbę o dodanie funkcji rozszerzenia związaną z
skróty klawiszowe (np.), wyszukaj
„
component=Platform>Extensions Type=Feature shortcuts
”, w którym znajdziesz tę listę wyników. - Jeśli znajdziesz zgłoszenie pasujące do Twojej prośby, kliknij ikonę gwiazdki, aby otrzymać powiadomienie o błędzie otrzyma aktualizację. Nie odpowiadaj na komunikat o błędzie, mówiąc „Ja też” lub zapytaj „Kiedy to będzie implemented?"; mogą one spowodować wysłanie setek e-maili.
- Jeśli nie znajdziesz odpowiedniego zgłoszenia, które można oznaczyć gwiazdką, prześlij nową prośbę na http://crbug.com/new. Bądź jak najbardziej szczegółowe informacje: podaj tytuł opisowy i wyjaśnij, wybrać, jakiej funkcji chcesz używać i jak zamierzasz z niej korzystać.
- Poczekaj, aż bilet zostanie zaktualizowany. Większość nowych żądań jest sklasyfikowana w ciągu tygodnia, chociaż czasami Czasem aktualizacja trwa dłużej. Nie odpowiadaj na zgłoszenie z pytaniem, kiedy funkcja będzie dostępna. dodano. Jeśli zgłoszenie nie zostanie zmodyfikowane w ciągu dwóch tygodni, wyślij wiadomość na adres grupę dyskusyjną z linkiem do swojej prośby.
- Jeśli po raz pierwszy zgłosiłeś(-aś) swoją prośbę na grupie dyskusyjnej i skierowano Cię na to pytanie , odpowiedz w pierwotnym wątku, podając link do zgłoszenia oznaczonego gwiazdką lub otwartego przez Ciebie. Dzięki temu Ułatw innym osobom, które mają tę samą prośbę, znalezienie właściwego biletu.