ServiceWorkerGlobalScope:canmakepayment 事件

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能僅在 Service Workers 中可用。

ServiceWorkerGlobalScope 介面的 canmakepayment 事件在支付應用的 service worker 上觸發,用於檢查它是否已準備好處理支付。具體來說,當商家網站呼叫 PaymentRequest() 建構函式時,會觸發此事件。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

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

oncanmakepayment = (event) => { }

事件型別

一個 CanMakePaymentEvent。繼承自 ExtendableEvent

Event ExtendableEvent CanMakePaymentEvent

示例

canmakepayment 事件在支付應用的 service worker 上觸發,用於檢查它是否已準備好處理支付。具體來說,當商家網站呼叫 PaymentRequest() 建構函式時,會觸發此事件。然後,service worker 可以使用 CanMakePaymentEvent.respondWith() 方法進行適當的響應。

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

respondWith() 返回一個 Promise,該 Promise 解析為一個布林值,以指示 service worker 是否準備好處理支付請求(true),或者不準備(false)。

規範

規範
Payment Handler API
# the-canmakepaymentevent

瀏覽器相容性

另見