У меня есть приложение 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;