ServiceWorkerGlobalScope: canmakepayment 事件

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表

安全上下文: 此功能仅在 安全上下文 (HTTPS) 中可用,在部分或所有 支持的浏览器 中可用。

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

canmakepayment 事件是 ServiceWorkerGlobalScope 接口的事件,它在支付应用程序的 service worker 上触发,用于检查它是否已准备好处理支付。具体来说,当商家网站调用 PaymentRequest() 构造函数时,就会触发该事件。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

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

oncanmakepayment = (event) => {};

事件类型

示例

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

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅