当用户使用iOS移动浏览器的“要求桌面版”或iOS Chrome浏览器的“要求桌面版”时,我想发送iPad版本的网站。在该模式下,似乎只有用户代理有所不同,并且似乎无法检测到。有任何想法吗?

我的网站有三个版本:台式机/平板电脑/智能手机。平板电脑版本是桌面版本的静态版本,它是非常动态的,并且大量使用JavaScript(视差效果)。

最佳答案

我见过一些人使用cookie/sessionStorage来检测不断变化的用户代理,例如http://leavesofcode.net/2013/07/08/responsive-design-with-switch-to-desktop-site-option/https://gist.github.com/dtipson/7401026

但是,我发现您可以通过将navigator.platformnavigator.userAgent交叉引用来跳过所有操作。这是专门针对iOS的,因为我听说Chrome的“请求桌面网站”也会自动更新视口(viewport),因此可能不需要对此进行检查。

var iOSAgent = window.navigator.userAgent.match(/iPhone|iPod|iPad/);
var iOSPlatform = window.navigator.platform && window.navigator.platform.match(/iPhone|iPod|iPad/);
var iOSRequestDesktop = (!iOSAgent && iOSPlatform);

关于javascript - 如何检测iOS Mobile Safari和Chrome的 "request desktop site"模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30251638/

10-12 04:39