インライン インストールのサポート終了と移行に関するよくある質問

2018 年 6 月 12 日以降、インライン インストールは非推奨になりました。詳しくは、Chromium ブログをご覧ください。 投稿をご覧ください。

タイムラインに関する質問

2018-06-12 の変更点

2018 年 6 月 12 日以降に初めて公開された Chrome ウェブストアのアイテム(拡張機能やアプリなど)は、 インライン インストールが無効になっている。「無効」インライン インストールの試行が Chrome ウェブストアのアイテムの詳細ページに自動的にリダイレクトされ、ユーザーはこのページで インストールを完了します。ストアの既存のアイテムのうち、 表示されます。

2018-09-12 の変更点

無効化は、公開日に関係なく、すべてのアイテムに適用されます。100% のインライン インストール を試行すると、Chrome ウェブストアにリダイレクトされ、そこでユーザーが インストールできます。

2018-09-12 の前にやるべきことは?

何も変更する必要はありませんが、インストール フローを確認して、 chrome.webstore.install() 呼び出し: アイテムの Chrome ウェブストア掲載情報に直接移動できます。 これによって、最適なユーザー エクスペリエンスが得られるかどうかを確認できます。

また、Chrome ウェブストアの新しいダウンロード バッジを サイトにインストール フローを適用できます。

M71(2018 年 12 月)での変更点は何ですか?

M71 以降、Chrome では chrome.webstore.install() メソッドと呼び出しはサポートされなくなります。 失敗してサイトでのインストール フローが中断します。この時点で API 呼び出し JavaScript TypeError がスローされます。この日より前に、API メソッドの呼び出しをすべて削除してください。

インライン インストールを無効にした後

インストール フローはどのようなものですか?

サイトで chrome.webstore.install() を呼び出しても、すぐにダイアログがトリガーされなくなります 代わりに新しいフォアグラウンド タブが開き、Chrome ウェブストア( https://chrome.google.com/webstore/detail/EXTENSION_ID)。そこからユーザーは クリックすると、ダイアログが開き、 インストールまたは解約できます。ダイアログを閉じると、タブが Chrome に表示されたままになります ウェブストア。

インストールが成功したかどうかを確認するにはどうすればよいですか?

chrome.webstore.install() を呼び出すと、failureCallback がトリガーされ、エラーが返されます。 ユーザーが Chrome ウェブストアにリダイレクトされたと通知します。エラーの有無は、 成功したかどうかを表します。Chrome 71 以降、 chrome.webstore.install() は失敗するため、failureCallback は実行されません。

この API を使用しなくても、サイトは通信することにより、アイテムがすでにインストールされているかどうかを検出できます。 ウェブサイト間の接続を提供します。これには、拡張機能に関するメッセージと、 マニフェストで externally_connectable プロパティを指定します。

"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.
}

次のように置き換えます。

  • EXTENSION_ID: 拡張機能の ID。
  • MESSAGE: 拡張機能に送信するメッセージ文字列またはオブジェクト。

インストール後に情報ページを表示するにはどうすればよいですか?

chrome.runtime イベントを使用して、インストール後に新しいタブを開きます。この例は、 バックグラウンド ページは次のようになります。

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);
  }
});

例外として対応できますか?

いいえ。このポリシー変更は、例外なく Chrome ウェブストアのすべてのアイテムに適用されます。