2011-08-08 5 views
0

휴대 전화 사용자를 리디렉션하는 자바 스크립트 코드가 있습니다. 코드를 확인해 주셔서 감사합니다. 그물, 총 newb에서 가져 왔습니다. 스크립트의 품질에 관한 귀하의 의견을 소중히 여깁니다.휴대 전화 사용자를 리디렉션하는 자바 스크립트

모든 종류의 휴대 전화를 지원합니까?

function RedirectSmartphone(url) { 
    if (url && url.length > 0 && IsSmartphone()) 
     window.location = url; 
} 

function IsSmartphone() { 
    if (DetectUagent("android")) return true; 
    else if (DetectUagent("iphone")) return true; 
    else if (DetectUagent("ipod")) return true; 
    else if (DetectUagent("symbian")) return true; 
    return false; 
} 

function DetectUagent(name) { 
    var uagent = navigator.userAgent.toLowerCase(); 
    if (uagent.search(name) > -1) 
     return true; 
    else 
     return false; 
} 
RedirectSmartphone("http://mobile.version.com"); 
+2

원하는 경우 http://detectmobilebrowser.com/에서 코드가 생성됩니다. 전에 코드를 사용했는데 꽤 잘 작동합니다. – dtanders

+0

잘 모르겠습니다. 개인적으로 사용자 에이전트를 스니핑하는 대신 화면 해상도를 확인합니다. 그렇게하면 화면마다 올바른 페이지/스타일을 가질 수 있습니다. –

+0

모든 종류의 휴대 전화를 지원합니까? ** 아니요 ** Blackberry, WebOS 및 Windows Phone 7은 무엇입니까? – Greg

답변

3

"모든 휴대 전화"가 의미하는 바에 따라 다르지만 예를 들어 블랙 베리 휴대 전화 또는 태블릿에는 해당되지 않습니다.

더 나은 방법은 화면 해상도를 감지하는 것입니다. jQuery에서 할 수있는 작업은 다음과 같습니다.

if ((screen.width < 1024) && (screen.height < 768)) { 
window.location = 'http://mobile.site.com'; 
} 
+0

이드는 그것을 커버하기 위해 정제, 블랙 베리 – webmasters

+0

정제?! 사이트의 모바일 버전은 항상 10 인치 화면을 빨아들입니다. – Quentin

+0

Ty 코드에 대한 대단히 많은 부분이 해상도와 관련이 있습니다. http://mobile.mysite.com을 사용하여 코드를 리디렉션하여 편집 할 수 있습니까? – webmasters

0

모든 휴대 전화를 포함한다고 생각합니다. 그러나 코드를 정리하는 몇 가지 간단한 방법을 제공하고 싶습니다.

function IsSmartphone(){ 
    return (DetectUagent("android") || DetectUagent("ipod") || DetectUagent("ipod") || DetectUagent("symbian")); 
} 

function DetectUagent(name){ 
    return (navigator.userAgent.toLowerCase().search(name) > -1); 
} 
+0

은 깨끗하게 보입니다 ... 사용해야합니까, 신뢰할 수 있습니까? 나는 나의 수입 중 일부가 그것에 달려 있기 때문에 확실하게 싶다 – webmasters

+0

당신이 찾고있는 모든 장치를 테스트하십시오. 그게 당신에게 100 % 신뢰를 줄 것이다 :) – ShankarSangoli

+0

그냥이 끔찍한 스크립트를 최적화 할하시기 바랍니다 ... – Denis

1

풍부한 해상도 기반 모바일 장치의 등장으로 화면 너비를 활용하는 것은 좋지 않습니다. PHP 또는 CGI와 같은 서버 측 기술로 작성된 시스템을 활용할 수 있습니다. http://www.mlynn.org/2010/06/mobile-device-detection-and-redirection-with-php/에 다운로드 할 수있는 예제와 스크립트가 포함되어있어 구현에 도움이되는 좋은 자습서가 있습니다.

5

내 사이트에서 아래 코드를 실행했는데 Androids, iPads, iPhones 및 Blackberry와 잘 작동하는 것으로 보입니다. 저는 PHP 페이지에 PHP 버전을 사용하고 있으며, CGI/PERL 페이지에이 코드를 사용하고 있습니다. 둘 다 같은 효과가 있습니다.

<script type="text/javascript"> 
function RedirectSmartphone(url){ 
    if (url && url.length > 0 && IsSmartphone()) 
    window.location = url; 
} 
function IsSmartphone(){ 
    if (DetectUagent("android")) return true; 
    else if (DetectUagent("blackberry")) return true; 
    else if (DetectUagent("iphone")) return true; 
    else if (DetectUagent("opera")) return true; 
    else if (DetectUagent("palm")) return true; 
    else if (DetectUagent("windows")) return true; 
    else if (DetectUagent("generic")) return true; 
    else if (DetectUagent("ipad")) return true; 
    else if (DetectUagent("ipod")) return true; 
    return false; 
} 
function DetectUagent(name){ 
    var uagent = navigator.userAgent.toLowerCase(); 
    if (uagent.search(name) > -1) 
    return true; 
    else 
    return false; 
} 
RedirectSmartphone("http://mobile.version.com"); 
</script> 
관련 문제