Пока допиливал по работе приложение для работы с функционалом PWA (progressive Web App) столкнулся с косяками для iOS (как и ожидалось). На iOS PWA работают с дикими ограничениями, плюс еще не выпадает нативный баннер предлагающий добавить приложение на рабочий стол.
Как обходной путь предлагается запилить свой баннер в стиле iOS, который бы указывал на кнопку Share в сафари и писать костыльный код проверки, что это Safari и что это не Standalone mode (т е проверку что это не PWA):
// Detects if device is on iOS
const isIos = () => {
const userAgent = window.navigator.userAgent.toLowerCase();
return /iphone|ipad|ipod/.test( userAgent );
}
// Detects if device is in standalone mode
const isInStandaloneMode = () => ('standalone' in window.navigator) && (window.navigator.standalone);
// Checks if should display install popup notification:
if (isIos() && !isInStandaloneMode()) {
this.setState({ showInstallMessage: true });
}
