Я не могу установить PWA, нажав на кнопку - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть приложение React. Моя задача - выполнить установку приложения PWA, нажав кнопку. Проблема - событие beforeinstallprompt не срабатывает. В то же время, когда я go в меню браузера и выбираю «добавить на рабочий стол» - приложение установлено.

Буду благодарен за любые идеи.

code:

import React, {useState, useEffect } from 'react';

const styles = {
    width:'100px',
    height:'50px',
    textAlign: 'center',
    position: 'absolute',
    top:0,
    left:0,
    transform: 'translate(50%,50%)'
}

const Test = () => {
    const [supportsPWA, setSupportsPWA] = useState(false);
    const [promptInstall, setPromptInstall] = useState(null);

    useEffect(() => {
            console.log('in use')// I see in the console
        const handler = e => {
            console.log('in handler') // I do not see in the console
            e.preventDefault();
            setSupportsPWA(true);
            setPromptInstall(e);
        };
        window.addEventListener("beforeinstallprompt", handler);
        return () => window.removeEventListener("transitionend", handler);
        }, []);
        const onClick = e => {
            alert('click')
            e.preventDefault();
            if (promptInstall) {
                promptInstall.prompt();
            }else{
                    return;
            };
        };

        return (
            supportsPWA && (<button style={styles} onClick={(e) => onClick(e)}>Install</button>)       
        )
};

export default Test;

1 Ответ

0 голосов
/ 05 апреля 2020

проблема решена! У меня был второй слушатель до установки Prompt

...