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 ウェブストアのすべてのアイテムに適用されます。