Chrome'un "Masaüstü Sitesi İste" seçeneği nasıl çalışır?


94

İOS google chrome için, bir kullanıcı "Masaüstü sitesi iste" düğmesine tıkladığında, tarayıcı bir masaüstü sitesini açmaya çalışmak için ne yapar? Sitelerin aradığı istek üzerine bir tür başlık veya benzer bir şey hayal ediyorum?

Yanıtlar:


64

Sanırım tek fark, User-Agent:istekteki başlık.

Android cihazımda Chrome tarafından gönderilen User-Agent başlıkları şunlardır:

Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19

İlkinde "Mobil" kelimesine ve ayrıca Android sistemi ve cihazdan bahsedildiğine dikkat edin. Bunları kontrol ettiğimde, bunun aynı zamanda, masaüstü Linux sürümü tarafından gönderilen değerle yakından eşleşen X11 ve x86_64 gibi yanlış bilgiler sağladığını görüyorum. Krom.


14
Ayrı bir başlık harika olurdu. Kullanıcı Aracısı koklama çok korkunç.
Mu Mind

10
Katılıyorum. Bazen bazı siteler tarafından uygulanan otomatik algılama ve yeniden yönlendirme, son derece ters etki yaratır ve ağırlaştırır.
dsh

5
Cihaz boyutunu, arayüzlerini ve yeteneklerini tespit etmek daha iyi bir çözüm olacaktır. CSS medya sorguları doğru yönde atılan bir adımdır.
Brad

1
Bu özellik, basit bir UA anahtarı ve yenileme tarafından uygulanmaz. Gerçek şu ki, çoğu mobil site bir masaüstü UA dizesi ile yüklenirse masaüstüne geri DÖNMEZ. Öyleyse Safari orijinal isteğinizi kullanıyor? Hayır! Başlangıçta mobil sitenin URL'sini yazmış olsanız bile çalışıyor gibi görünüyor. Nasıl uygulandığını bilmiyorum çünkü mobil versiyonların adı hiçbir şekilde standartlaştırılmadı, ancak basit bir UA değişikliğinden daha akıllıca bir şeyler oluyor.
Andrew G

"Düzen görünüm penceresinin", bir medya sorgusunu etkileyen "Masaüstü Sitesi İste" seçeneğini tetiklediğinde de değişeceğini belirtmek isterim. Giriş -mobil-web el kitabı görünüş penceresi hakkında Daha fazla bilgi edinmek için.
Rick

20

Yalnızca şunu belirtmek isterim ki, Chrome artık yalnızca değiştirmiyor, User-Agentaynı zamanda "Masaüstü Sitesi İsterseniz" orijinal görüntü alanı meta etiketini de yok sayıyor. Böylece, User-Agentartık koklamak gerekmeyecek ve çoğu duyarlı sitenin otomatik olarak yapacağı gibi, görüntü alanı değişikliğine güvenebilirsiniz. Daha fazla referans için bu Değişikliğe bakın .


1
Bunun için teşekkürler. Kendi çok basit web sitem tıklanmadığında çok farklı davranıyor ve CSS'de medya sorgularından başka bir şey yapmadığım için neden anlayamadım.
R Reveley

17

Bir diğer küçük fark, isteğin, herhangi bir yeniden yönetmen taşınmadan önce kasıtlı olarak girilen son URL'ye yapılmış gibi görünmesidir. Örneğin:

Verilen: somesite.com aracıyı koklar, Android'i görür ve bir document.location + = "/ m" yapar;

Ardından: tarayıcının bir URL'si somesite.com/m olacaktır

Ancak: "Masaüstü sitesi talep ederseniz" Kullanıcı-Aracıyı değiştirecek ve somesite.com'dan yeniden talep edecektir.

Tabi ki: ilk etapta doğrudan somesite.com/m'nin mobil URL'sine girmiş olmanız durumunda, bu durumda sadece somesite.com/m'yi yeniden yükler.

Bunun HTTP 301 ve 302 yönlendirmeleriyle çalışmasını beklerdim, bunun document.location değişiklikleriyle çalıştığını biliyorum (en azından açıklandığı gibi) ve <meta> yenilemeleriyle çalıştığını tahmin ediyorum.


Eğer cevabınız gelen temel mü bu ?
Keale

@Keale muhtemelen zaman damgaları göz önüne alındığında tam
tersi

Görünüşe göre bir POST isteği başka bir URL için GET öneren bir 302 veya 303 alırsa, kullanıcı 'masaüstü görünümü' ayarını değiştirirse, tarayıcı 302/303'ü döndüren orijinal URL'ye bir GET isteği gönderir (POST parametrelerini kaybederek) ). Görünüşe göre hem Firefox hem de Chrome bunu yapıyor ve IMO bu kesinlikle olması gereken şey değil.
Jake

-2

Bu javascript pasajı aynı şeyi etkili bir şekilde yapacaktır:

function requestDesktopSite() {
    document.getElementsByTagName('meta')['viewport'].content='min-width: 980px;';
}
<button onclick="requestDesktopSite()">Request Desktop Site</button>

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.