通过userAgent判断是否为iphone失效?

正常iphone浏览器里面获取navigator.userAgent返回的内容大概是这样的

Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1

通常使用以下代码判断是否为iphone设备。

var u = navigator.userAgent
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)

但是,今天遇到一个判断失败的。iphone16promax,在浏览器里面判断的isIOS为false,导致后续执行流程错误。 打印用户手机里的navigator.userAgent发现是这样的:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36

这样导致之前的判断条件失效。 后来ds了一下,发现是用户浏览器开启了桌面版,导致navigator.userAgent发生了变化。 后面,改一下判断条件或者让不用桌面版就好了。