ios在判断设备是ipad_iOS13 苹果“偷摸地“改了iPad的userAgent,你被坑过吗

在iOS13中,iPad的userAgent默认值变为"Macintosh",导致某些设备被误判为PC。这一改变源于苹果的“请求桌面网站”功能。开发者可通过设置WKWebView的defaultWebpagePreferences或使用新的WKNavigationDelegate方法来调整显示模式,确保正确识别iPad设备。
摘要由CSDN通过智能技术生成

一、奇怪的 bug

最近 App 需要支持 iPad,在开发过程中遇到了一个奇怪的 bug。
App 中有一个 H5 页面,在 iPhone 上展示的很好,在 iPadMini2 上也没问题。但是在 iPad Air 2 以及 iPad Pro 上,顶部会额外展示用户信息栏,就像进入了 PC 网站一样。
通过排查,最终找到了元凶——userAgent。

iPad iOS13.5,Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15iPad iOS12.4.6,Mozilla/5.0 (iPad; CPU OS 12_4_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Mobile/15E148 Safari/604.1iPad Mini iOS13.1.3Mozilla/5.0 (iPad; CPU iPhone OS 13_1_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1

从上面可以看到,从 iOS13 开始,iPad 设备获取的 userAgent 值中不再包含“iPad”字段了,而变成了“Macintosh”字段,不过奇怪的是,同样是 iOS13 的 iPad Mini 设备获取的 userAgent 值中却仍然有“iPad”字段

二、起因

WWDC2019 苹果发布了 iOS13 和 iPad OS,从此 iPad 有了自己的操作系统。
随着 iPad 的尺寸越来越大,苹果为了更好的用户体验,一屏幕内可以展示更多的内容,在 iOS13 中,苹果改进 Safari,新增了一项功能——“请求桌面网站”。通俗地讲,就是为了让 iPad 用起来像 PC[狗头]。而且这个功能还“默认”开启,通过 iPad 设备打开 Safari 进入网站时会访问 PC 网站,而不是移动端网站。那么怎么实现这个功能呢?聪明的苹果工程师想了个好办法——改 userAgent 值不就完了吗?假装自己是 PC 骗过所有人,完美,就这么干!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值