2013-10-14 2 views
1

UAS를 사용하여 브라우저를 검색하고 싶지만 일반적인 합의는 끔찍한 생각 인 것 같습니다. 내 문제는 JS 또는 JQuery를 사용하여 늦게 발견 할 것이므로 서버에 어떤 브라우저를 말하고 브라우저 특정 정보를 다시 보내야합니다. 모바일 브라우저가 감지 될 경우사용자 에이전트 문자열을 사용하여 사용자 브라우저 검색

이 사이트의 모바일 부분이다는, 서버는 내가 사회는 일반적으로하지만 내가 할 수있는의 승인 무엇을 유지하기 위해 같은 콘텐츠 A.

입니다 그렇지 않으면 컨텐츠 B를 전송 내가 원하는 것을 성취하는 방법을 하나만 보지만 규칙을 어 기고있는 것처럼 느껴집니다.

답변

1

당신은 스니핑 사용자 에이전트를 수행하기 위해이 Browser detection using the user agent

가장 일반적인 이유를 확인하려고 할 수 있습니다하면 브라우저가 실행되는 장치의 유형 을 결정하는 것입니다.

+0

이것은 'mobi'문자열에 대한 검색이 조금 털이 있지만, 내가 찾고있는 것의 절반 정도입니다. 지원과 업데이트로 무언가를 찾으려고 계속해야합니다. – Phish

0

서버는 사용자가 액세스하기 위해 무엇을 사용하고 있는지 알 수 없습니다. 자바 스크립트 라이브러리는이 목적에 가장 잘 맞을 것입니다.

내 솔루션 : (모더 나이저이 작동) 다음 자바 스크립트를 사용하고 어떤 브라우저의 게시 변수 페이지 B로 리디렉션 사용하는 브라우저를 감지

로드 페이지를했다.

+0

이 필요합니다. 어떤 아이디어. 응답을 주셔서 감사합니다 – Phish

1

브라우저가 모바일 사용하여 자바 스크립트에있는 경우 당신은 그냥 확인할 수 있습니다 :

var isTouch = ("ontouchstart" in document.documentElement); 
if(isTouch){ 
     // is on mobile device 
} else { 
     // is NOT on mobile device 
} 

하거나 Moderizer 같은 JS 라이브러리를 사용할 수 있습니다

http://modernizr.com/download/#-touch-shiv-cssclasses-teststyles-prefixes-load

당신이 시도 할 수 PHP를 사용하여 이 :

http://mobiledetect.net/

,451,515,

http://code.google.com/p/php-mobile-detect/

http://detectmobilebrowsers.com/는 - 스크립트를 다운로드 당신 때문에 난 정말이 아닌 클라이언트 측 솔루션을 필요로이 제품의 특성

<?php 
$useragent=$_SERVER['HTTP_USER_AGENT']; 
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))); 
header('Location: http://detectmobilebrowser.com/mobile'); 
?> 
+0

이것은 훌륭하지만, 응용 프로그램의 특성 때문에, 서버가 서버 요청에 응답하기 전에 클라이언트 측 메서드가 아닌지 알아야합니다. – Phish

+0

나는 또한 서버 측에 대한 나의 대답을 업데이트했다. –

+0

JSP를 사용하지만 옵션 사이트 인 것을 볼 때 나는 읽기와 놀이를해야한다. 고마워요 아빠! – Phish

관련 문제