 |
|
|  |
Android - iOS UserAgent ±¸ºÐ ¹× ¸ð¹ÙÀÏÀ¥ÆäÀÌÁö¿¡¼ ¾Û ¼³Ä¡ ¿©ºÎ È®ÀÎ |
|
|
 |
8³â Àü |
¾Æ·¡ º»¹® ³»¿ëÀ¸·Î´Â ¾Èµå·ÎÀ̵忡¼ ³×À̹ö, Å©·Ò µî ¸î¸î ºê¶ó¿ìÀú¿Í ÃֽŠ±â±â¿¡¼ Á¤»ó ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù.
https://github.com/koreaparks/CustomSchemeManager
À§ Github¿¡ ¾÷µ¥ÀÌÆ®ÇÏ¿´À¸´Ï È®ÀÎÇϽðí, ¾Æ·¡ º»¹®Àº Âü°í¿ëÀ¸·Î ºÁÁÖ¼ÌÀ¸¸é ÇÕ´Ï´Ù.
¸ð¹ÙÀÏ À¥ÆäÀÌÁö¿¡¼ Ä¿½ºÅÒ ½ºÅ´À» È°¿ëÇÏ¿© ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼³Ä¡ À¯¹«¸¦ È®ÀÎÇÏ°í, ¼³Ä¡°¡ ¾ÈµÇ¾îÀÖÀ» ¶§´Â Ç÷¹À̽ºÅä¾î, ¾Û½ºÅä¾î·Î °¢°¢ À̵¿ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸°Ú½À´Ï´Ù.
Android¿Í iOSÀÇ ±¸Çö»ó Â÷ÀÌÁ¡
(1) Android
div¸¦ ¹Ì¸® ¸¸µé¾î³õ°í ½ºÅ¸ÀÏ ¼Ó¼º display:none À¸·Î ¼û°ÜµÓ´Ï´Ù.
Àç»ý¹öÆ° Ŭ¸¯ ½Ã div¿¡ iframeÀ» »ý¼ºÇÏ¿© Ä¿½ºÅÒ½ºÅ´À» ºÒ·¯¿Àµµ·Ï ÇÏ°í,
½ÇÆÐÇϸé ÀÚµ¿À¸·Î goMarket ÇÔ¼ö¸¦ ºÒ·¯¿Í ¸¶ÄÏÀ¸·Î À̵¿ÇÕ´Ï´Ù.
(2) iOS
iOS´Â iframeÀÌ µ¿ÀÛÇÏÁö ¾Ê´Â´Ù ÇÕ´Ï´Ù.
±×·¡¼ ŸÀ̸Ӹ¦ ¼³Á¤ÇÏ°í, Ä¿½ºÅÒ½ºÅ´À» ºÒ·¯¿Â ÈÄ ÁöÁ¤ÇÑ ½Ã°£(¼Ò½º¿¡¼´Â 1ÃÊ)ÀÌ Áö³¯µ¿¾È ½ºÅ´Ã³¸®°¡ ¾ÈµÇ¸é
¸¶Âù°¡Áö·Î goMarket ÇÔ¼ö¸¦ Ÿµµ·Ï ÇÏ¿´½À´Ï´Ù.
´Ü, iOS´Â ¾Û ¼³Ä¡°¡ µÇ¾îÀÖÁö ¾ÊÀ» ¶§ ¿À·ùÆ˾÷ÀÌ Àá±ñ ¶ß´Âµ¥ À̺κÐÀº ¾î¿ ¼ö ¾ø´Â °Í °°½À´Ï´Ù.
script - userAgent¸¦ ¾ò¾î¿À±â
UserAgent´Â navigator.userAgent¸¦ ÅëÇØ ¾ò¾î¿Ã ¼ö ÀÖ½À´Ï´Ù.
.toLowerCase¸¦ ÅëÇØ ¾ò¾î¿Â ½ºÆ®¸µÀ» ¼Ò¹®ÀÚ·Î º¯È¯ÇÏ°í, android¿Í iOS¸¦ ±¸ºÐÇÕ´Ï´Ù.
ÀÌ °úÁ¤¿¡¼ BlackBerry µî ´Ù¸¥ OS¸¦ ƯÁ¤ÁöÀ» ¼öµµ ÀÖ½À´Ï´Ù.
var currentOS;
var mobile = (/iphone|ipad|ipod|android/i.test(navigator.userAgent.toLowerCase()));
if (mobile) {
// À¯Àú¿¡ÀÌÀüÆ®¸¦ ºÒ·¯¿Í¼ OS¸¦ ±¸ºÐÇÕ´Ï´Ù.
var userAgent = navigator.userAgent.toLowerCase();
if (userAgent.search("android") > -1)
currentOS = "android";
else if ((userAgent.search("iphone") > -1) || (userAgent.search("ipod") > -1)
|| (userAgent.search("ipad") > -1))
currentOS = "ios";
else
currentOS = "else";
} else {
// ¸ð¹ÙÀÏÀÌ ¾Æ´Ò ¶§
currentOS = "nomobile";
}
script - Ä¿½ºÅÒ ½ºÅ´À» ÅëÇÑ ¾Û ¼³Ä¡ À¯¹« È®ÀÎ
¾Û¼³Ä¡ È®ÀÎ ÈÄ Android´Â iframe»ý¼ºÀ¸·Î ½ºÅ´Ã³¸®°¡ µÇ¾ú´ÂÁö ÆÇ´ÜÇÏ°í, iOS´Â ŸÀӾƿôÀ» ÅëÇØ ½ºÅ´ 󸮸¦ È®ÀÎÇÕ´Ï´Ù.
°¢°¢ Á¤»ó 󸮰¡ µÇÁö ¾Ê¾ÒÀ» ¶§ goMarket ÇÔ¼ö·Î ³Ñ¾î°¡µµ·Ï ÇÏ¿´´Âµ¥, ÇÔ¼ö¸¦ µû·Î ¸¸µå¼Åµµ »ó°ü¾ø½À´Ï´Ù.
// ¹Ù·ÎÀç»ý, ´Ù¿î·Îµå ¹öÆ° Ŭ¸¯
function checkAppInstall() {
// ¾Û¿¡ ¼³Á¤ÇسõÀº Ä¿½ºÅÒ ½ºÅ´. ¿©±â¼± "customScheme"
var url = "customScheme://blahblah~";
if(currentOS == "android") {
// ¾Èµå·ÎÀ̵å´Â ¹Ì¸® ¸¸µé¾îµÐ iframe¿¡
var invisible_div = document.getElementById("invisible_div");
invisible_div.innerHTML = "<iframe src=" + url + " onload="goMarket()"></iframe>";
} else if(currentOS == "ios") {
setTimeout( function() {
goMarket();
}, 1000);
location.href = url;
} else {
alert("¾Èµå·ÎÀ̵å¿Í ¾ÆÀÌÆù¿¡¼¸¸ »ç¿ë °¡´É");
}
return false;
}
// ¸¶ÄÏ À̵¿
function goMarket() {
if(currentOS == "android") {
location.href=market_a;
} else if(currentOS == "ios") {
location.href=market_i;
} else {
/* ±âŸ OSÀÏ ¶§ */
}
}
body
È®ÀÎ ¹öưŬ¸¯ ½Ã ¾Û ÀνºÅç üũ ÇÔ¼ö¸¦ ½ÇÇàÇÕ´Ï´Ù.
div¸¦ ¹Ì¸® ¸¸µé¾î¼ ¼û°Ü³õ´Â °ÍÀÌ ÇÙ½ÉÀÔ´Ï´Ù. ¼û±âÁö ¾ÊÀ¸¸é ÀÌÈÄ iframeÀÌ »ý¼ºµÇ¸é¼ ÆäÀÌÁö¿¡ ³ëÃâµË´Ï´Ù.
<button class="big" onclick="return checkAppInstall()">È®ÀÎ</button><br>
<!-- display ¼Ó¼ºÀ» µÎ¾î ¼û¾îÀÖ´Â div¸¦ ¹Ì¸® ¸¸µé¾î ³õ½À´Ï´Ù. ÀÌ div¿¡ iframeÀÌ »ý¼ºµË´Ï´Ù. -->
<div id="invisible_div" style="display:none;"></div>
Áö±Ý±îÁö ¾Û ¼³Ä¡¸¦ ÆǺ°ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò½À´Ï´Ù. |
|
̵̧ : 933 |
̵̧
¸ñ·Ï
|
|
|  |
|