(function () { if ("serviceWorker" in navigator) { window.addEventListener("load", function () { navigator.serviceWorker.register("/service-worker.js").catch(function (err) { console.error("서비스워커 등록 실패", err); }); }); } function isIos() { return /iphone|ipad|ipod/i.test(window.navigator.userAgent); } function isStandalone() { return ( ("standalone" in window.navigator && window.navigator.standalone) || window.matchMedia("(display-mode: standalone)").matches ); } document.addEventListener("DOMContentLoaded", function () { var banner = document.getElementById("ios-install-banner"); if (!banner) return; var dismissed = localStorage.getItem("iosInstallBannerDismissed"); if (isIos() && !isStandalone() && !dismissed) { banner.style.display = "flex"; } }); window.dismissIosInstallBanner = function () { var banner = document.getElementById("ios-install-banner"); if (banner) banner.style.display = "none"; localStorage.setItem("iosInstallBannerDismissed", "1"); }; })();