下面是我用来在React应用程序中监听beforeinstallprompt
事件的代码。我已经删除了很多不必要的代码,因此尽管React钩子是相同的,但以下不是我的完整示例。
在我的Android和iOS手机上,我无法触发此事件,并且不会显示“安装前提示测试”警报。但是,它确实会在Windows 10桌面版的Chrome上触发。在Android上,我可以从自定义菜单栏中安装该应用,然后运行alert('appinstalled')
,这很奇怪。
因此已确认它可以在Chrome桌面上正常工作,只是不会在移动设备上触发它。我想念什么?
export default function MyComponent() {
const [deferredPrompt, setDeferredPrompt] = useState(null)
useEffect(() => {
window.addEventListener('beforeinstallprompt', (e) => {
e.preventDefault()
setDeferredPrompt(e)
alert('test beforeinstallprompt')
})
window.addEventListener('appinstalled', () => {
alert('appinstalled')
})
}, [])
return null
}