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 表只在浏览器中加载