import React, { useState, useEffect } from 'react'; function SafariInstallPrompt() { const [showPrompt, setShowPrompt] = useState(false); const [isStandalone, setIsStandalone] = useState(false); useEffect(() => { // Check if running in standalone mode (already installed) const standalone = window.navigator.standalone || window.matchMedia('(display-mode: standalone)').matches; setIsStandalone(standalone); // Check if Safari on iOS or macOS const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent); const isMacOS = navigator.platform.includes('Mac') && !isIOS; // Show prompt if Safari and not already installed if ((isSafari || isIOS) && !standalone && !sessionStorage.getItem('safariInstallPromptDismissed')) { // Wait a bit before showing to not overwhelm user const timer = setTimeout(() => { setShowPrompt(true); }, 3000); return () => clearTimeout(timer); } }, []); const handleDismiss = () => { setShowPrompt(false); sessionStorage.setItem('safariInstallPromptDismissed', 'true'); }; // Don't show if already installed if (isStandalone || !showPrompt) { return null; } return (
🍎

Install as App

Tap the Share button and select "Add to Home Screen"

); } export default SafariInstallPrompt;