Javascript 如何触发';在安装PrompEvent和x27之前;为推出;“弹出窗口”;添加到主屏幕
我目前正在开发一个基于react的应用程序,我正面临PWA主题。我想在需要弹出窗口时触发并显示,该弹出窗口允许您将PWA添加到主屏幕。我最近读到,我可以使用BeforeInstallPromptEvent触发它,但有一些规则需要遵循,如: -该web应用尚未安装 -满足用户参与启发式(目前,用户已与域交互至少30秒) -通过HTTPS提供服务(服务人员需要) -已向获取事件处理程序注册服务工作程序 现在我已经具备了所有这些先决条件,但实际上我无法在InstallPrompEvent之前启动,因此我从未查看过弹出窗口,有人能帮我吗 你可以找到我截取这件事的方式 谢谢你的建议Javascript 如何触发';在安装PrompEvent和x27之前;为推出;“弹出窗口”;添加到主屏幕,javascript,reactjs,progressive-web-apps,prompt,Javascript,Reactjs,Progressive Web Apps,Prompt,我目前正在开发一个基于react的应用程序,我正面临PWA主题。我想在需要弹出窗口时触发并显示,该弹出窗口允许您将PWA添加到主屏幕。我最近读到,我可以使用BeforeInstallPromptEvent触发它,但有一些规则需要遵循,如: -该web应用尚未安装 -满足用户参与启发式(目前,用户已与域交互至少30秒) -通过HTTPS提供服务(服务人员需要) -已向获取事件处理程序注册服务工作程序 现在我已经具备了所有这些先决条件,但实际上我无法在InstallPrompEvent之前启动,因此
window.addEventListener('beforeinstallprompt',函数(e){
//防止Chrome 67及更早版本自动显示提示
e、 预防默认值()
//隐藏事件,以便稍后触发。
延迟提示=e
showAddToHomeScreen()
})
函数showAddToHomeScreen(){
var a2hsBtn=document.querySelector(“.ad2hs提示符”);
//@ts忽略
a2hsBtn.style.display=“块”;
//@ts忽略
a2hsBtn.addEventListener(“单击”,添加到主屏幕);
}
函数addToHomeScreen(){var a2hsBtn=document.querySelector(“.ad2hs提示符”);//隐藏显示A2HS按钮的用户界面
//@ts忽略
a2hsBtn.style.display='none';//显示提示
deferredPrompt.prompt();//等待用户响应提示
deferredPrompt.userChoice
//@ts忽略
.then(函数(choiceResult){
如果(choiceResult.Output==‘已接受’){
log('用户接受A2HS提示');
}否则{
log(“用户取消了A2HS提示”);
}
deferredPrompt=null;
});}
您好)您是否检查了活动的平台/浏览器兼容性?
您可以在本页底部找到它:
它只在我的设备(Android)上的Chrome中触发。它在iPhone上不起作用
当浏览器准备好显示默认PWA提示或您可以显示自定义提示时,会触发该事件。
我相信这是兼容性问题
希望对你有帮助