2011-04-30 2 views
4

저는 모바일 사이트의 작업을하고 있습니다. 지금까지 메인 사이트 인 메인 사이트에서 모바일 사이트 콘텐츠를 가져 왔습니다."전체 사이트보기"모바일 사이트 옵션

나는 모바일 사이트를 많이 연구하고 있으므로 많은 사이트에서 "전체 사이트보기"링크가 있음을 알게되었습니다.

이제 화면 너비 등을 확인하여 주요 사이트의 헤더 태그에서 .js를 통해 모바일 방문자를 리디렉션 할 계획입니다. (가장 좋은 방법이지만 내 머리 속에서 가장 쉬운 방법인지는 확실하지 않습니다.)) 이 가장 좋은 방법이지만, 더미 테스트에,이, 친구들 드로 이드, 하나의 블랙 베리 아이폰에서 작동하는지 다시 나는 몰라이

if (screen.width<=XyZ||screen.height<=XyZ) //example iphone size lets say 320x480 
window.location.replace("mobile site link here.") 

같은 하지만 뭔가를 (그러나 제안도 환영합니다). 그러나 그것은 효과적이다.

어쨌든, 내 질문에, 모든 페이지에서이 확인을 수행하면 ... 어떻게 "전체 사이트보기"옵션을 사용할 수 있습니까?

+5

에 오신 것을 환영합니다 SO를. 다음에는 '롤'을 모두 빠뜨리십시오. 도움과 인사가 필요합니다. 처음 두 개는 성가신 것이고 마지막 것은 불필요합니다. 그리고 나는 [Alots] (http://hyperboleandahalf.blogspot.com/2010/04/alot-is-better-than-you-at-everything.html)도 좋아합니다. –

+0

또한 답이 도움이 되었다면 다른 사용자가 쉽게 동일한 문제를 걸러 낸 해결책을 찾을 수 있도록 허용/투표하십시오. – neebz

답변

0

JS가 모바일 브라우저에서 지원되지 않는 경우가 많기 때문에 가장 좋은 방법은 아닙니다.

이 기능을 사용할 수 있습니다 : 롤 :)

function its_mobile_browser($user_agent = '') 
{ 
    if (empty($user_agent)) 
    { 
     $user_agent = $_SERVER['HTTP_USER_AGENT']; 
     if (empty($user_agent)) return false; 
    } 

    if (stripos($user_agent, 'Explorer')!==false || 
     stripos($user_agent, 'Windows')!==false || 
     stripos($user_agent, 'Win NT')!==false || 
     stripos($user_agent, 'FireFox')!==false || 
     stripos($user_agent, 'linux')!==false || 
     stripos($user_agent, 'unix')!==false || 
     stripos($user_agent, 'Macintosh')!==false 
    ) 
    { 
     if (!(stripos($user_agent, 'Opera Mini')!==false 
       || stripos($user_agent, 'WAP')!==false 
       || stripos($user_agent, 'Mobile')!==false 
       || stripos($user_agent, 'Symbian')!==false 
       || stripos($user_agent, 'NetFront')!==false 
       || stripos($user_agent, ' PPC')!==false 
       || stripos($user_agent, 'iPhone')!==false 
       || stripos($user_agent, 'Android')!==false 
       || stripos($user_agent, 'Nokia')!==false 
       || stripos($user_agent, 'Samsung')!==false 
       || stripos($user_agent, 'SonyEricsson')!==false 
       || stripos($user_agent, 'LG')!==false 
       || stripos($user_agent, 'Obigo')!==false 
       || stripos($user_agent, 'SEC-SGHX')!==false 
       || stripos($user_agent, 'Fly')!==false 
       || stripos($user_agent, 'MOT-')!==false 
       || stripos($user_agent, 'Motorola')!==false 
     ) 
     ) return false; 
    } 

    return true; 
} 

또는 뭔가 더 나은

당신은 ?fullsite=true로 당신의 웹 사이트 주소로 쿼리 문자열 매개 변수를 추가하고 당신의 상태 경우에 다음을 포함 할 수
+2

더 강력한 것을 사용하는 것이 더 나을 것입니다. :) – neebz

+0

@nEEbz, 물론. 코드를 제공하면 사용할 것입니다. –

0

>

var fullsite = getQueryString()["fullsite"]; 
if (fullsite != "true" && (screen.height <= xyz || screen.width <= abc)) //now redirect 

다음 함수 액세스 쿼리 문자열이 필요합니다. 나는

<a href="mysite.com?fullsite=true"> Show me Full Site </a>

===========

가 확인하시기 바랍니다 것을 말하는> JavaScript query string

function getQueryString() { 
    var result = {}, queryString = location.search.substring(1), 
     re = /([^&=]+)=([^&]*)/g, m; 

    while (m = re.exec(queryString)) { 
    result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); 
    } 

    return result; 
} 

> 여기에서 당신이 가질 수있는 링크를했다 CSS Media Queries를 살펴보십시오. 디자인 아키텍처를 약간 변경해야하지만 꽤 유용합니다.

+0

이유는 내가 너비/높이를 통해 모바일 브라우저를 감지하고 그 방향을 리디렉션 (내 주요 초점은 아이폰과 이드 유형 전화 btw입니다)와 함께 갔다 이유는 내 이해 사용자 에이전트에서 100 % 신뢰할 수 없기 때문에, 항상 업데이 트해야합니다 다시 말하지만 자바 스크립트는 JavaScript가 많으므로 더 낮은 엔드/소형 장치를 사용하지 않을 것입니다. 그런 다음 theres는 "아무것도하지 않습니다"및 브라우저가 미디어 유형을 통해 작업을 수행하도록하지만 상위 단말의 일부는이를 무시합니다. 그게 내 강한 소송이 아니기 때문에 그게 나를 위해 힘들게 만들고있어. 나의 ? 좋은 튜토리얼을 친절하게 가르쳐 주시겠습니까? 모두에게 다시 한 번 감사드립니다. – somdow

8

$_SERVER['HTTP_USER_AGENT']을 통해 PHP를 사용하여 모바일 사용자를 감지하십시오. 많은 모바일 브라우저가 JS를 지원하지 않기 때문에 JavaScript 탐지가 안정적이지 않을 수 있습니다. "전체 사이트보기"는 탐지 할 수있는 모바일 사이트를 거부 할 수있는 쿠키를 설정합니다. 쿠키를 사용하여 사용자의 기본 설정을 추적합니다. "보기 전체 사이트"페이지를 참조하십시오 골격

<?php 

if (isset($_COOKIE['nomobile'])) { 
    $style = "normal"; 
} else { 

if (preg_match('/iPhone|(...etc...)/', $_SERVER['HTTP_USER_AGENT'])) { 
    $style = "mobile"; 
} else { 
    $style = "normal"; 
} 

} 

에서

:

<a href="fullsite.php">Full Site</a> 

fullsite.php

<?php 
    setcookie('nomobile', 'true'); 
    header('Location: index.php'); 
?> 
0

서버 측 감지으로, 확실히이 작업을 수행 할 수있는 방법입니다 JS가 사용 가능하거나 심지어 켜져 있다고 보증 할 수 없습니다.모바일 탐지를위한 훌륭한 PHP 스크립트는 여기 http://detectmobilebrowsers.mobi/에서 찾을 수 있으며 웹에서 많이 사용됩니다.

2

먼저 다음 URL로 이동하여 mobile_detect.php 파일 다운로드 :

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

다음 페이지의 지시 사항을 따르십시오, 당신의 루트 디렉토리에 mobile_detect.php을 업로드 삽입 색인 또는 홈 페이지에 다음 코드 :

<?php 
    @include("Mobile_Detect.php"); 
    $detect = new Mobile_Detect(); 
    if ($detect->isMobile() && isset($_COOKIE['mobile'])) 
    { 
    $detect = "false"; 
    } 
    elseif ($detect->isMobile()) 
    { 
    header("Location:http://www.yourmobiledirectory.com"); 
    } 
    ?> 

당신은 위의 코드는 "모바일"라는 쿠키를 확인하는 것을 알 수 있습니다, 모바일 장치로 리디렉션 될 때이 쿠키가 설정되어 모바일 페이지. 쿠키는 귀하의 모바일 방문 페이지에서 다음 코드를 삽입 설정하려면 :

<?php 
    setcookie("mobile","m", time()+3600, "/"); 
    ?> 

보기에서 전체 기사 : http://www.squidoo.com/php-mobile-redirect

관련 문제