我想做一个无头 PWA 安装。
使用 Puppeteer-sharp,我能够单击内容中的 PWA 安装按钮以调出 A2HS 对话框。
我认为我可以使用“Dialog”类处理此对话框,因为 beforeinstallprompt 对象正在使用 prompt() 显示它,但我不能。
如何捕捉 A2HS 对话框?
[A2HS 对话框]
https://developers.google.com/web/updates/images/2018/06/a2hs-dialog-cropped.png
这是我的代码。(它可以捕获 window.prompt() 和 window.confirm()。)
using (var browser = await Puppeteer.LaunchAsync(options))
using (var page = await browser.NewPageAsync())
{
await page.GoToAsync("...");
page.Dialog += new EventHandler<DialogEventArgs>(async (sender, args) => {
// for test
var alertMessage = args.Dialog.Message;
Debug.WriteLine("*** {}", alertMessage);
await args.Dialog.Dismiss();
});
var btnSelector = "#pwa_install_button";
await page.WaitForSelectorAsync(btnSelector);
await page.ClickAsync(btnSelector);
...
}