Najczęstsze pytania dotyczące migracji procesu wycofania instalacji bezpośredniej

Od 12 czerwca 2018 r. instalacja bezpośrednia została wycofana. Więcej informacji znajdziesz w poście na blogu Chromium.

Pytania dotyczące osi czasu

Co się zmieni 12 czerwca 2018 r.

W przypadku wszystkich produktów w Chrome Web Store, takich jak rozszerzenia i aplikacje, po raz pierwszy opublikowany 12 czerwca 2018 r. lub później instalacja ta będzie wyłączona. „Wyłączona” oznacza, że próby instalacji bezpośredniej są automatycznie przekierowywane na stronę z informacjami o produkcie w Chrome Web Store, na której użytkownik może dokończyć instalację. Nic się nie zmieni w przypadku istniejących produktów w sklepie, które zostały opublikowane po raz pierwszy przed tą datą.

Co się zmieni 12 września 2018 r.

Wyłączenie będzie dotyczyć WSZYSTKICH elementów niezależnie od daty publikacji. 100% prób instalacji bezpośredniej w przypadku wszystkich produktów zostanie przekierowane do sklepu Chrome Web Store, gdzie użytkownicy będą mogli dokończyć instalację.

Co muszę zrobić przed 12 września 2018 roku?

Nie musisz niczego zmieniać, ale zalecamy zapoznanie się z procesem instalacji i zastąpienie wywołania chrome.webstore.install() funkcją nawigacji bezpośrednio na stronie z informacjami o produkcie w Chrome Web Store. Dzięki temu będziesz mieć pewność, że zapewnia to użytkownikom najlepsze wrażenia.

Zalecamy też zastosowanie nowej plakietki pobierania z Chrome Web Store podczas instalacji w witrynie.

Co się zmieni w wersji M71 (grudzień 2018 r.)?

Od wersji M71 Chrome nie będzie już obsługiwać metody chrome.webstore.install(), a wywoływanie jej będzie nieudane, co spowoduje zakłócenie procesu instalacji w Twojej witrynie. Wywołania interfejsu API powodują wtedy błąd typu JavaScriptu. Przed tą datą należy usunąć wszystkie wywołania metody interfejsu API.

Po wyłączeniu wbudowanej instalacji

Jak będzie przebiegał proces instalacji?

Gdy Twoja witryna wywoła polecenie chrome.webstore.install(), Chrome nie będzie od razu wywoływać okna, tylko otworzy nową kartę na pierwszym planie ze stroną szczegółów sklepu Chrome Web Store (tj. https://chrome.google.com/webstore/detail/EXTENSION_ID). Następnie użytkownik może przejść przez standardowy proces instalacji, klikając przycisk „Zainstaluj”, a w oknie pojawi się okno z prośbą o przeczytanie uprawnień i zainstalowanie lub anulowanie. Po zamknięciu okna karta pozostanie w Chrome Web Store.

Jak mogę sprawdzić, czy moja instalacja zakończyła się powodzeniem?

Gdy wywołasz chrome.webstore.install(), nieudane wywołanie zwrotne zostanie zainicjowane z informacją o przekierowaniu użytkownika do Chrome Web Store. Nie będzie on wskazywać, czy instalacja się powiodła. Pamiętaj, że od Chrome 71 wywołania funkcji chrome.webstore.install() będą kończyć się niepowodzeniem, więc wywołanie zwrotne nie będzie nigdy wykonywane.

Bez tego interfejsu API witryna nadal może wykrywać, czy dany element jest już zainstalowany, komunikując się między rozszerzeniem a witryną. Możesz to zrobić, używając komunikatów rozszerzeń i właściwości externally_connectable w pliku manifestu.

"externally_connectable": {
  "matches": ["https://www.example.com/*"]
}
// JS running on https://example.com
try {
  chrome.runtime.sendMessage('EXTENSION_ID', MESSAGE, function() {
    if (chrome.runtime.lastError) {
      // Extension is not installed.
    }
  });
} catch (e) {
  // Extension is not installed.
}

Zastąp następujące elementy:

  • EXTENSION_ID: identyfikator rozszerzenia.
  • MESSAGE: ciąg znaków lub obiekt wiadomości do wysłania do rozszerzenia.

Jak wyświetlić stronę informacyjną po instalacji?

Użyj zdarzenia chrome.runtime i po instalacji otwórz nową kartę. Oto przykład, którego możesz użyć na stronie w tle:

chrome.runtime.onInstalled.addListener(function listener(details) {
  if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
    chrome.tabs.create({url: "https://www.example.com/"});
    chrome.runtime.onInstalled.removeListener(listener);
  }
});

Czy mogę uzyskać wyjątek?

Nie. Ta zmiana zasad obejmuje wszystkie produkty w Chrome Web Store bez wyjątku.