๐ ๋ฌธ์ ) ํน์ ๊ธฐ๊ธฐ + ์ธ์ฑ์์ navigator์๋จ
์๋๋ก์ด๋ ์ ๊ธฐ์ข
๋ฑ ํน์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ ์ค
์ธ์ฑ ๋ธ๋ผ์ฐ์ ์์๋ navigator.share ๊ฐ ์๋ ๋๊ฐ ์์ต๋๋ค.
์ด๋ด๋ ์ฌ์ฉ์๋ฅผ ์ธ์ฑ๋ธ๋ผ์ฐ์ ์์ ์์ ํ๊ฒจ๋ฒ๋ฆฌ๋ ๋ฐฉ๋ฒ์ธ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
โบ๏ธ ํด๊ฒฐ) ํด๊ฒฐ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋...
๋ฐฉ๋ฒ์ ๊ทธ๋ฅ ์๋ ์ฝ๋๋ฅผ App.tsx ํน์ Root ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์ ๋ฃ์ผ๋ฉด ๋ฉ๋๋ค.
// ์๋๋ก์ด๋ ์น๋ทฐ์์ navigator.share๊ฐ ์ง์๋์ง ์์ ๋ ๋์ฒด ๊ณต์ ๋ฐฉ๋ฒ
const handleShareIntent = () => {
const currentUrl = window.location.href; // ํ์ฌ ํ์ด์ง URL
const hostname = window.location.hostname; // ํ์ฌ ํธ์คํธ๋ช
// Intent URL ์์ฑ - ๋์ ํธ์คํธ๋ช
์ฌ์ฉ ๋ฐ HTTPS ์คํด ์ ์ฉ
const intentUrl = `intent://${hostname}/#Intent;scheme=https;S.browser_fallback_url=${encodeURIComponent(currentUrl)};end;`;
// ์๋๋ก์ด๋ ํ๊ฒฝ์์๋ง ๋์, ํน์ ์ฑ์ผ๋ก ์ธํ
ํธ ํธ์ถ
window.location.href = intentUrl;
};
useEffect(() => {
// navigator.share API๊ฐ ์๋ ๊ฒฝ์ฐ intent ๋ฐฉ์ ์ฌ์ฉ
if (!navigator.share) {
handleShareIntent();
}
}, []);
๊ทธ๋ ์ง๋ง ๋ ํฐ ๋ฌธ์ ๋ ์ด๊ฒ์ด ์๋๋์ง ์ค์ ๋ก ํ ์คํธํด ๋ณผ ๋ ๋ฐ์ํฉ๋๋ค.
๐ญ ํ ์คํธ๊ฐ ๋ณต์กํ ํธ..
ํ
์คํธ์ ์๋ฆฌ๋ ์ด๋ฌํฉ๋๋ค.
๋ฆฌ์กํธ๋ ๋ญ๋ ์ฑ์ ๋ก์ปฌ์์ ๋์ฐ๋๋ฐ
https ๋ก ๋์์ผ ํฉ๋๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฐพ์ผ๋ฉด ๋ง์ด ๋์ค๊ณ ๊ทธ๋ค์ง ์ด๋ ต๋ค๊ธฐ ๋ณด๋จ ๊ท์ฐฎ์๋ฐ
์ด๋ ๊ฒ ๋์๋ ์ธ์ฆ์ ๋ฌธ์ ๋ก ์ธํด ์ค์ ๊ธฐ๊ธฐ์์ ํ
์คํธ๊ฐ ์ฌ์ค์ ์๋ฉ๋๋ค.
์ธ์คํ๊ทธ๋จ ํํ์์ ํ
์คํธ์ฉ ๋งํฌ๋ฅผ ์์๋ก ๋ฃ๊ณ ๋ค์ด๊ฐ ๋ด๋
์ธ์ฆ์ ๋ฌธ์ ๋ก ์๋ฌด๊ฒ๋ ๋จ์ง ์์ต๋๋ค.
์ด๋ด๋ ngrok ์ ์ฐ๋ฉด ํธ๋ฆฌํ๊ฒ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ์ต๋๋ค.
1๏ธโฃ ngrok ์ค์น && ํ ํฐ
brew install ngrok
ngrok ์ค์นํ ๋ธ๋ผ์ฐ์ ์์ ๋ก๊ทธ์ธ ํํ์
ngrok config add-authtoken YOUR_NGROK_AUTH_TOKEN
์ ํ ํฐ ๋ถ๋ถ์ ๋ฐ๊ธ๋ฐ์ ํ ํฐ์ ๋ฃ์ด ์ค๋๋ค.
2๏ธโฃ ํฌ์๋ฉ
ngrok http 192.168.0.xx:5173
๋ง์ฝ 5173 ์ผ๋ก ์คํ๋๊ณ ์๋ ์ฑ์ ํฌ์๋ฉํ๊ณ ์ถ๋ค๋ฉด,
๋จผ์ ๋ก์ปฌ์์ ๋์ด ๋ค ์์ฒ๋ผ ํ๋ฉด ๋์
๋๋ค.
๊ทธ๋ฌ๋ฉด
์ด์ฉ๊ตฌ์ ์ฉ๊ตฌ.ngrok-free.app
๊ฐ์ ํํ๋ก ์ฃผ์๋ฅผ ์๋ ค์ค๋๋ค.
์ด ์ฃผ์๋ฅผ ์ด์ฉํด์ ํ ์คํธ ํ๋ฉด ๋ ์ ๋๋ค.
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[250411 til] ๋ฐฉํ๋ฒฝ ์ ์ + VPN์์.. (0) | 2025.04.11 |
---|---|
[250326 TIL] image-rendering, translateZ(0) (0) | 2025.03.26 |
[250313 TIL] ๋ง์ดํฌ๋กํ๋ก ํธ์๋(๋ฅ๋ฆฌ์์น) (0) | 2025.03.13 |
[250310 TIL] post-commit (0) | 2025.03.11 |
[250225 TIL] Hasura๋?(GPT์ง์) (0) | 2025.02.25 |
๐ ๋ฌธ์ ) ํน์ ๊ธฐ๊ธฐ + ์ธ์ฑ์์ navigator์๋จ
์๋๋ก์ด๋ ์ ๊ธฐ์ข
๋ฑ ํน์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ ์ค
์ธ์ฑ ๋ธ๋ผ์ฐ์ ์์๋ navigator.share ๊ฐ ์๋ ๋๊ฐ ์์ต๋๋ค.
์ด๋ด๋ ์ฌ์ฉ์๋ฅผ ์ธ์ฑ๋ธ๋ผ์ฐ์ ์์ ์์ ํ๊ฒจ๋ฒ๋ฆฌ๋ ๋ฐฉ๋ฒ์ธ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
โบ๏ธ ํด๊ฒฐ) ํด๊ฒฐ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋...
๋ฐฉ๋ฒ์ ๊ทธ๋ฅ ์๋ ์ฝ๋๋ฅผ App.tsx ํน์ Root ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์ ๋ฃ์ผ๋ฉด ๋ฉ๋๋ค.
// ์๋๋ก์ด๋ ์น๋ทฐ์์ navigator.share๊ฐ ์ง์๋์ง ์์ ๋ ๋์ฒด ๊ณต์ ๋ฐฉ๋ฒ
const handleShareIntent = () => {
const currentUrl = window.location.href; // ํ์ฌ ํ์ด์ง URL
const hostname = window.location.hostname; // ํ์ฌ ํธ์คํธ๋ช
// Intent URL ์์ฑ - ๋์ ํธ์คํธ๋ช
์ฌ์ฉ ๋ฐ HTTPS ์คํด ์ ์ฉ
const intentUrl = `intent://${hostname}/#Intent;scheme=https;S.browser_fallback_url=${encodeURIComponent(currentUrl)};end;`;
// ์๋๋ก์ด๋ ํ๊ฒฝ์์๋ง ๋์, ํน์ ์ฑ์ผ๋ก ์ธํ
ํธ ํธ์ถ
window.location.href = intentUrl;
};
useEffect(() => {
// navigator.share API๊ฐ ์๋ ๊ฒฝ์ฐ intent ๋ฐฉ์ ์ฌ์ฉ
if (!navigator.share) {
handleShareIntent();
}
}, []);
๊ทธ๋ ์ง๋ง ๋ ํฐ ๋ฌธ์ ๋ ์ด๊ฒ์ด ์๋๋์ง ์ค์ ๋ก ํ ์คํธํด ๋ณผ ๋ ๋ฐ์ํฉ๋๋ค.
๐ญ ํ ์คํธ๊ฐ ๋ณต์กํ ํธ..
ํ
์คํธ์ ์๋ฆฌ๋ ์ด๋ฌํฉ๋๋ค.
๋ฆฌ์กํธ๋ ๋ญ๋ ์ฑ์ ๋ก์ปฌ์์ ๋์ฐ๋๋ฐ
https ๋ก ๋์์ผ ํฉ๋๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฐพ์ผ๋ฉด ๋ง์ด ๋์ค๊ณ ๊ทธ๋ค์ง ์ด๋ ต๋ค๊ธฐ ๋ณด๋จ ๊ท์ฐฎ์๋ฐ
์ด๋ ๊ฒ ๋์๋ ์ธ์ฆ์ ๋ฌธ์ ๋ก ์ธํด ์ค์ ๊ธฐ๊ธฐ์์ ํ
์คํธ๊ฐ ์ฌ์ค์ ์๋ฉ๋๋ค.
์ธ์คํ๊ทธ๋จ ํํ์์ ํ
์คํธ์ฉ ๋งํฌ๋ฅผ ์์๋ก ๋ฃ๊ณ ๋ค์ด๊ฐ ๋ด๋
์ธ์ฆ์ ๋ฌธ์ ๋ก ์๋ฌด๊ฒ๋ ๋จ์ง ์์ต๋๋ค.
์ด๋ด๋ ngrok ์ ์ฐ๋ฉด ํธ๋ฆฌํ๊ฒ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ์ต๋๋ค.
1๏ธโฃ ngrok ์ค์น && ํ ํฐ
brew install ngrok
ngrok ์ค์นํ ๋ธ๋ผ์ฐ์ ์์ ๋ก๊ทธ์ธ ํํ์
ngrok config add-authtoken YOUR_NGROK_AUTH_TOKEN
์ ํ ํฐ ๋ถ๋ถ์ ๋ฐ๊ธ๋ฐ์ ํ ํฐ์ ๋ฃ์ด ์ค๋๋ค.
2๏ธโฃ ํฌ์๋ฉ
ngrok http 192.168.0.xx:5173
๋ง์ฝ 5173 ์ผ๋ก ์คํ๋๊ณ ์๋ ์ฑ์ ํฌ์๋ฉํ๊ณ ์ถ๋ค๋ฉด,
๋จผ์ ๋ก์ปฌ์์ ๋์ด ๋ค ์์ฒ๋ผ ํ๋ฉด ๋์
๋๋ค.
๊ทธ๋ฌ๋ฉด
์ด์ฉ๊ตฌ์ ์ฉ๊ตฌ.ngrok-free.app
๊ฐ์ ํํ๋ก ์ฃผ์๋ฅผ ์๋ ค์ค๋๋ค.
์ด ์ฃผ์๋ฅผ ์ด์ฉํด์ ํ ์คํธ ํ๋ฉด ๋ ์ ๋๋ค.
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[250411 til] ๋ฐฉํ๋ฒฝ ์ ์ + VPN์์.. (0) | 2025.04.11 |
---|---|
[250326 TIL] image-rendering, translateZ(0) (0) | 2025.03.26 |
[250313 TIL] ๋ง์ดํฌ๋กํ๋ก ํธ์๋(๋ฅ๋ฆฌ์์น) (0) | 2025.03.13 |
[250310 TIL] post-commit (0) | 2025.03.11 |
[250225 TIL] Hasura๋?(GPT์ง์) (0) | 2025.02.25 |