2009-11-24 9 views
1

웹 응용 프로그램을 작성 중이며 요청한 브라우저/OS 유형을 확인하고 이에 따라 반환 된 내용을 사용자 정의하고 싶습니다. 따라서 누군가가 iPhone/Android에서 사이트를 방문하면보다 간소화 된 경험을 얻을 수 있으며 데스크톱이라면 정식 버전을 얻을 수 있습니다. 나는 내용을 서로 섞어 쓰는 것보다 완전히 다른 길을 택할 것입니다.브라우저 유형에 따라 웹 컨텐트를 변경하십시오.

ASP.NET/IIS와 PHP에서 권장되는 방법은 무엇입니까? 들어오는 HTTP 요청을 잡아서 결정을 내린 다음 리디렉션하는 단일 장소가 있습니까? 아니면 대개 페이지별로 처리합니까? 내가 알아야 할 결함이 있니?

편집 : 축소 된 버전에는 전체 버전에 대한 링크가 있는지 확인하는 것이 중요합니다. 좋은 지적이지만, 일단 사용자가이 선택을하면 향후 모든 리디렉션이 정식 버전을 가리켜 야한다는 문제가 제기됩니다. 나는이 모든 것을 한 곳에서하고 있다고 생각합니다.

건배,

쉐인

+0

어떤 이유에서든 브라우저 검색에 실패하면 전체 버전을 볼 수 있도록 선택하십시오. –

+0

. 사실 그것은 또 다른 요점을 제기합니다. 누군가가 결정을 내리면 해당 브라우저의 모든 요청을 전체 사이트로 리디렉션해야합니다. 이것이 어떻게 이루어 졌는지 궁금합니다. – Shane

답변

1

ASP.NET에는 브라우저 검색 메커니즘이 내장되어 있습니다. 들어오는 User-Agent 문자열과 일치하는 에이전트의 관련 속성을 일치시키기위한 정규 표현식을 포함하는 XML 파일 (*. browser)의 완전히 확장 가능한 컬렉션에 의해 구동됩니다.

Request.Browser 객체에서 속성에 액세스 할 수 있습니다. 브라우저 특성을 기반으로 컨트롤 속성에 태그를 지정할 수 있습니다.

웹에 대한 정보가 많습니다. 자세한 내용은 내 책 Ultra-Fast ASP.NET에서 확인할 수 있습니다.

+0

흥미 롭습니다. 이 소리는 자동화 된 리디렉션 방식과 비슷하지만 사용자가 전체 버전의 페이지를보기로 선택한 상황을 어떻게 처리합니까? 이제 요청은 브라우저 유형에 따라 리디렉션되지 않고 세션으로 리디렉션됩니다. – Shane

+0

.NET 3.5에서는 Request.Browser 속성을 기반으로하는 논리 또는 일부 세션 수준 플래그가 설정되어 있는지 여부를 결정합니다. .NET 4.0에서는 User-Agent 문자열과 정규 표현식만으로 브라우저를 결정하는 대신 프로그래밍 방식으로 제어 할 수있는 기능을 추가 했으므로 조금 더 편합니다. 세션 점검 로직을 작성한 다음 마크 업에 선언적 속성을 사용할 수도 있습니다. – RickNZ

1

아니 직접적인 대답하지만 CSS 미디어 유형을 체크 아웃 가치가있다. 핸드 헬드 형을 지정하여 전화기 및 기타 소형 스크린 장치 용 페이지를 간소화 할 수 있습니다.

http://www.w3.org/TR/CSS21/media.html

1

당신은 HTTP 요청에서 사용자 에이전트 헤더를 살펴보고 그에 따라 리디렉션 수 있습니다.

PHP의 경우 $_SERVER['HTTP_USER_AGENT']이됩니다.

그러나 이렇게 할 때 많은 중복 코드를 작성하지 않아야합니다.

0

ASP.NET 응용 프로그램의 경우 Global.asax 파일과 Session_BeginRequest 이벤트를 확인할 수 있습니다.

관련 문제