ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


Android - iOS UserAgent ±¸ºÐ ¹× ¸ð¹ÙÀÏÀ¥ÆäÀÌÁö¿¡¼­ ¾Û ¼³Ä¡ ¿©ºÎ È®ÀÎ
7³â Àü
¾Æ·¡ º»¹® ³»¿ëÀ¸·Î´Â ¾Èµå·ÎÀ̵忡¼­ ³×À̹ö, Å©·Ò µî ¸î¸î ºê¶ó¿ìÀú¿Í ÃֽŠ±â±â¿¡¼­ Á¤»ó ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù.

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>



Áö±Ý±îÁö ¾Û ¼³Ä¡¸¦ ÆǺ°ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò½À´Ï´Ù.
ÃßõÃßõ : 875 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,256
[ANDROID & PHP] °£´ÜÇÑ ·Î±×ÀÎ ÀÎÁõ
1,255
ÇöÀç½Ã°£ °¡Á®¿À±â
1,254
ÇÑ ¸Þ¼Òµå·Î Spinner ¿©·¯°³ »ç¿ëÇϱâ
1,253
startActivityForResult °ª ÁÖ°í¹Þ±â
1,252
Ä¿½ºÅÒ ´ÙÀ̾ó·Î±× ¸¸µé±â
1,251
Android ÀÇ Storage Path ¹× ÄÚµå ±¸Çö ±â¼ú
1,250
¾Èµå·ÎÀ̵忡¼­ ¶ç¿ï¼ö ÀÖ´Â ¿©·¯°¡Áö ´ÙÀ̾ó·Î±×
1,249
3°¡Áö ¸Þ¼Òµå·Î ³¡³»´Â ¾Èµå·ÎÀÌµå ¸¶½Ã¸á·Î ±ÇÇÑ È¹µæ
1,248
ACTIVITY¿¡¼­ Ȩ ¹öÆ° CATCH ÇÏ´Â ÇÔ¼ö
1,247
ÇöÀç ½ÇÇàÁßÀÎ ACTIVITY¸¦ ¾Ë¾Æ¿À´Â ÇÔ¼ö
1,246
°­Á¦·Î ȨŰ ´­¸°°Í ó·³
1,245
¾Èµå·ÎÀ̵å ÀÎÅÙÆ® / intent
1,244
¸ð¹ÙÀÏ ½º¸¶Æ®Æù Ư¼ö¹®ÀÚ ¸ðÀ½
Android/iOS UserAgent ±¸ºÐ ¹× ¸ð¹ÙÀÏÀ¥ÆäÀÌÁö¿¡¼­ ¾Û ¼³Ä¡ ¿©ºÎ È®ÀÎ
1,242
Android À¥ ºê¶ó¿ìÀú ¸µÅ©·Î ¾Û ½ÇÇà ¹æ¹ý
1,241
WebView File Upload
1,240
Get RealPath from Uri
1,239
android.net.conn.CONNECTIVITY_CHANGE
1,238
Glide ¿¡¼­ Gif ·Îµå°¡ ³Ê¹« ´À·Á¿ä.
1,237
ImageView¸¦ Width ±æÀÌ¿¡ ¸ÂÃç Height Á¶Àý
1,236
³»Àå ½ºÇÇÄ¿·Î ¿¬°á Çϱâ
1,235
Media Player¸¦ ÀÌ¿ëÇÑ À½¾Ç Àç»ý ¾îÇø®ÄÉÀÌ¼Ç ¸¸µé¾îº¸±â
1,234
DataBinding - findViewById ÀÌÁ¦ ¾È³ç~
1,233
[DataBinding] String Format Àû¿ëÇϱâ
1,232
[DataBinding] ImageView src¿¡ ¿¬µ¿ Çϱâ (ÇÔ¼ö ¿¬°á)
1,231
Scheme ¼³Á¤ ½Ã, ¾ÛÀÌ ¾Èº¸ÀÌ´Â Çö»ó
1,230
WebView¿¡¼­ Javascript Alert âÀÌ º¸ÀÌÁö ¾ÊÀ» ¶§
1,229
À¥ºäÈ­¸é¿¡¼­ ÀÓÀÇ µµ¸ÞÀÎÀ» Á¦¿ÜÇÑ »çÀÌÆ®´Â ¿ÜºÎ ºê¶ó¿ìÀú·Î
1,228
android webview url °¡·Îä±â / ³×ÀÌƼºê¿¡¼­ ÀÛ¾÷ | android
1,227
µð¹ÙÀ̽º ºÎÆýà ¾Û ½ÇÇàÇÏ´Â ¹æ¹ý / ÀçºÎÆà ½Ã ¾îÇà ½ÇÇàÇÏ´Â ¹æ¹ý
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.