当用户使用iOS移动Safari的“请求桌面站点”或iOS Chrome的“请求桌面版本”时,我希望发送我的网站iPad版本。看起来在该模式下仅用户代理不同,而且似乎无法检测。有什么想法吗?
我的网站有三个版本:桌面/平板电脑/智能手机。平板版本是桌面版本的静态版本,它非常动态并且广泛使用JavaScript(视差效果)。
当用户使用iOS移动Safari的“请求桌面站点”或iOS Chrome的“请求桌面版本”时,我希望发送我的网站iPad版本。看起来在该模式下仅用户代理不同,而且似乎无法检测。有什么想法吗?
我的网站有三个版本:桌面/平板电脑/智能手机。平板版本是桌面版本的静态版本,它非常动态并且广泛使用JavaScript(视差效果)。
platform.maxTouchPoints
。即使请求桌面版本,此字段仍然存在,但在真正的桌面Safari上,此字段不存在。navigator.platform
和navigator.userAgent
来跳过所有这些步骤。这是针对iOS特别设计的,因为我听说Chrome的“请求桌面站点”也会自动更新视口,因此在其上可能不需要进行此检查。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);
let isIOS = /iPad|iPhone|iPod/.test(navigator.platform) ||
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)
但你一定要查看原始答案--我并不想获得荣誉: https://dev59.com/D1MH5IYBdhLWcg3w1T2K#58064481