最近開發(fā)遇到的問題
1、css相關(guān)
當(dāng)想設(shè)置一個div盒子,高度隨著窗口的變化,而高度也同時變化。用vh
height: calc(100vh - 150px);
2、IOS safari 進行 X 連攜時候,safari瀏覽器當(dāng)檢測到手機已經(jīng)安裝了X app時候,會自動打開 X app,叫做 universal link.
這樣原畫面在監(jiān)測window.open是否返回值時候,一直為false,會走進錯誤信息提示里面。
let popupHandled = false; // callback 関數(shù) 只調(diào)用一次 function handlePopupResult(callback: any) { if (!popupHandled) { popupHandled = true; callback(); } } let globalFallbackTimeout: any = null; // 點擊按鈕 分享到X app const handleClick = () => { const tweetUrl = `https://twitter.com/intent/tweet?text=${tweetText}`; const isIOS = /iP(hone|od|ad)/.test(navigator.userAgent); const isSafari = isIOS && /Safari/i.test(navigator.userAgent); const width = 600; const height = 600; const left = window.innerWidth / 2 - width / 2; const top = window.innerHeight / 2 - height / 2; const popup = window.open( tweetUrl, "PostToX", `width=${width},height=${height},left=${left},top=${top}`, ); // visibilitychangeイベントを監(jiān)視して、ページが切り替わったかどうかを検出する // 「X APP」は開いていますなど document.addEventListener( "visibilitychange", () => { if (document.hidden) { clearTimeout(globalFallbackTimeout); handlePopupResult(() => handlePopupSuccess()); } else { if (!popup || popup.closed) { handlePopupResult(() => handlePopupFailure()); } else { handlePopupResult(() => handlePopupSuccess()); } } }, { once: true }, ); // ポップアップをブロックの場合 if (isSafari) { globalFallbackTimeout = setTimeout(() => { if (!document.hidden && (!popup || popup.closed)) { handlePopupResult(() => handlePopupFailure()); } }, 2000); } // 成功の場合 function handlePopupSuccess() { setIsLoading(false); const today = getTodayDateString(); localStorage.setItem("isSharedFruits", today); if (isSharedToday) { setIsShareDonwModalOpen(false); setIsSharedModalOpen?.(false); } else { setIsShareDonwModalOpen(true); setIsSharedModalOpen?.(false); } setIsSharedToday(true); setIsPopupBlocked(false); } // ポップアップをブロックの場合 function handlePopupFailure() { setIsPopupBlocked(true); setErrorMessage("ポップアップがブロックされました!"); setIsLoading(false); } handleSaveAsImage(); }

浙公網(wǎng)安備 33010602011771號