Tarayıcı türüne göre web içeriğini değiştirme

5 Cevap php

Ben bir web uygulaması yazıyorum ve istek geliyor tarayıcı / işletim sistemi ne tür çalışmak istiyorum ve buna göre iade içeriği özelleştirmek istiyorum. Yani birisi bir iPhone / Android siteyi ziyaret ederse, onlar daha akıcı bir deneyim olsun, ya da bir masaüstü var, onlar tam sürümünü almak. Ben hemen hemen tamamen farklı bir yol almak yerine birlikte içeriği karıştırmak için çalışacağız.

ASP.NET / IIS ve PHP bunun için önerilen yaklaşım nedir? Ben yönlendirmek, sonra, gelen HTTP isteklerini yakalamak bir karar tek bir yer var mı? Ya da bu genellikle sayfayı durumda bir sayfada yapılır? Herhangi gotchas ben dışarı bakmak gerekir?

Edit: iyi bir nokta emin azaltılmış sürümü tam sürüme bir bağlantı vardır yapmak için yapıldı. Bu iyi bir nokta, ama bir kez kullanıcı bu seçimi yapmak sorunu yükseltir, gelecekteki tüm yönlendirmeler artık tam sürüme işaret etmek gerekir. Ben gerçekten oldukça tek bir yerde tüm bu yapıyor olurdum.

Alkış,

Shane

5 Cevap

ASP.NET yerleşik bir tarayıcı algılama mekanizması vardır. Bu gelen kullanıcı aracısı dizesi ve eşleşti ajanlar için ilişkili eşleşen özellikleri için düzenli ifadeler içeren XML dosyaları (*. Tarayıcı) tam bir genişletilebilir koleksiyonu ile tahrik oluyor.

Sen Request.Browser nesneden özelliklerine erişebilirsiniz; Ayrıca tarayıcı özelliklerine göre denetim özelliklerini etiketleyebilirsiniz.

Bu konuda Web'de bilgi bir grup var - Ben de kitabımda ayrıntılı olarak kapsayacak: Ultra-Fast ASP.NET.

Değil doğrudan bir cevap ama CSS medya türlerini incelemeye değer. Sen telefonları ve diğer küçük ekranlı cihazlar için sayfasını düzene el türünü belirtebilirsiniz.

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

Sen HTTP isteği UserAgent başlığına bir göz atın ve buna göre yönlendirme olabilir.

Olacaktır PHP $_SERVER['HTTP_USER_AGENT'].

Ancak bu yaparken yinelenen bir sürü kod yazmak olmadığını dikkat etmelidir.

ASP.NET uygulamaları için Global.asax dosyası ve Session_BeginRequest olayı kontrol edebilirsiniz.

Muhtemelen Koşullu Yorumlar bakmak gerekir:

http://msdn.microsoft.com/en-us/library/ms537512%28VS.85%29.aspx