Chrome或iOS Safari无法为PWA触发“安装前提示”

时间:2019-06-08 12:57:50

标签: html service-worker progressive-web-apps

下面是我用来在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
}

0 个答案:

没有答案