ServiceWorkerGlobalScope: canmakepayment イベント

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

io error: No such file or directory (os error 2) (/home/runner/work/yari/yari/mdn/translated-content/files/ja/web/api/payment_handler_api/index.md)

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

メモ: この機能はサービスワーカー内でのみ利用可能です。

canmakepaymentServiceWorkerGlobalScope インターフェイスのイベントで、決済アプリのサービスワーカーで発生し、決済処理の準備ができているかどうかを確認します。具体的には、販売者ウェブサイトが PaymentRequest() コンストラクターを呼び出すと発生します。

構文

このイベント名を addEventListener() などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。

js
addEventListener("canmakepayment", (event) => {});

oncanmakepayment = (event) => {};

イベント型

canmakepayment イベントは、決済アプリのサービスワーカーで発行され、決済処理の準備ができているかどうかを調べます。具体的には、販売者のウェブサイトが PaymentRequest() コンストラクターを呼び出すと発行されます。サービスワーカーは、次のように CanMakePaymentEvent.respondWith() メソッドを使用して適切に応答することができます。

js
self.addEventListener("canmakepayment", (e) => {
  e.respondWith(
    new Promise((resolve, reject) => {
      someAppSpecificLogic()
        .then((result) => {
          resolve(result);
        })
        .catch((error) => {
          reject(error);
        });
    }),
  );
});

respondWith() は、サービスワーカーが決済リクエストを処理できる状態にある (true) またはそうでない (false) ことを示す論理値で解決するプロミス (Promise) を返します。

仕様書

Specification
Payment Handler API
# the-canmakepaymentevent

ブラウザーの互換性

BCD tables only load in the browser

関連情報