let installPrompt = null; const installButton = document.querySelector("#install"); window.addEventListener("beforeinstallprompt", (event) => { event.preventDefault(); installPrompt = event; installButton.removeAttribute("hidden"); }); installButton.addEventListener("click", async () => { if (!installPrompt) { return; } const result = await installPrompt.prompt(); console.log("Install prompt was: ${result.outcome}"); disableInAppInstallPrompt(); }); function disableInAppInstallPrompt() { installPrompt = null; installButton.setAttribute("hidden", ""); } window.addEventListener("appinstalled", () => { disableInAppInstallPrompt(); }); function disableInAppInstallPrompt() { installPrompt = null; installButton.setAttribute("hidden", ""); } window.addEventListener("beforeinstallprompt", async (event) => { const relatedApps = await navigator.getInstalledRelatedApps(); const psApp = relatedApps.find((app) => app.id === "pazarax"); if (psApp) { event.preventDefault(); alert("pazarax yüklü"); } }); function getPWADisplayMode() { if (document.referrer.startsWith("android-app://")) return "twa"; if (window.matchMedia("(display-mode: browser)").matches) return "browser"; if (window.matchMedia("(display-mode: standalone)").matches) return "standalone"; if (window.matchMedia("(display-mode: minimal-ui)").matches) return "minimal-ui"; if (window.matchMedia("(display-mode: fullscreen)").matches) return "fullscreen"; if (window.matchMedia("(display-mode: window-controls-overlay)").matches) return "window-controls-overlay"; return "unknown"; } window.addEventListener("DOMContentLoaded", () => { document.getElementById("status").value = getPWADisplayMode(); window.matchMedia("(display-mode: standalone)") .addEventListener("change", () => { document.getElementById("status").value = getPWADisplayMode(); }); }); /** UYANIK KALMA MODU **/ statusElem=document.getElementById("statusElem"); wakebutton=document.getElementById("wakebutton"); sleepbutton=document.getElementById("sleepbutton"); let wakeLock = null; if ("wakeLock" in navigator) { isSupported = true; statusElem.textContent = "Kapalı"; wakebutton.classList.remove("hidden"); } else { statusElem.textContent = "Desteklenmiyor"; } function awake(){ try { const awakeON = async function(a, b) { wakeLock = await navigator.wakeLock.request("screen"); statusElem.textContent = "Açık"; wakebutton.classList.add("hidden"); sleepbutton.classList.remove("hidden"); } awakeON(); } catch (err) { statusElem.textContent = `Hata : ${err.name}, ${err.message}`; } } function awakeoff(){ wakeLock.release().then(() => { wakeLock = null; statusElem.textContent = "Kapalı"; sleepbutton.classList.add("hidden"); wakebutton.classList.remove("hidden"); }); } /** SANAL KLAVYE (Mobil)**/ if ("virtualKeyboard" in navigator) { console.log("Klavye kullanılabilir"); navigator.virtualKeyboard.overlaysContent = false; /* otomaik gizle */ console.log("Klavye kontrolü devralındı"); document.getElementById("vkeybon").classList.remove("hidden"); const { x, y, width, height } = navigator.virtualKeyboard.boundingRect; console.log("Klavye Ölçüleri:", x, y, width, height); navigator.virtualKeyboard.addEventListener("geometrychange", (event) => { const { x, y, width, height } = event.target.boundingRect; console.log("Virtual keyboard geometry changed:", x, y, width, height); }); } function vKeyshow(){ vkeyboff.classList.remove("hidden"); vkeybon.classList.add("hidden"); navigator.virtualKeyboard.show(); } function vKeyhide(){ vkeybon.classList.remove("hidden"); vkeyboff.classList.add("hidden"); navigator.virtualKeyboard.hide(); }