PaymentRequestEvent: openWindow() 方法

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

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

openWindow() 方法是 PaymentRequestEvent 接口的方法,它只在给定 URL 与调用页面的来源相同的情况下,在新的窗口中打开指定的 URL。它返回一个 Promise,该承诺将解析为对 WindowClient 的引用。

语法

js
openWindow(url)

参数

url

要在新窗口中打开的 URL。它必须与调用页面的来源相同。

返回值

一个 Promise,该承诺将解析为对 WindowClient 的引用。

示例

js
…
self.addEventListener('paymentrequest', async e => {// Retain a promise for future resolution
  // Polyfill for PromiseResolver at link below.
  resolver = new PromiseResolver();

  // Pass a promise that resolves when payment is done.
  e.respondWith(resolver.promise);
  // Open the checkout page.
  try {
    // Open the window and preserve the client
    client = await e.openWindow(checkoutURL);
    if (!client) {
      // Reject if the window fails to open
      throw 'Failed to open window';
    }
  } catch (err) {
    // Reject the promise on failure
    resolver.reject(err);
  };
});

有关如何使用此方法的更多详细信息,请参见 打开支付处理程序窗口以显示基于 Web 的支付应用程序前端

规范

规范
Payment Handler API
# dom-paymentrequestevent-openwindow

浏览器兼容性

BCD 表只在浏览器中加载

另请参阅