[英]Javascript detect if on mobile device
好吧,这个问题之前已经回答过很多次了,但它对我不起作用。 我正在使用 navigator.userAgent 并搜索某些词 android|iphone|kindle|ipad。 但这不起作用。 当我在手机上运行时,userAgent 是:
Mozilla/5.0 (Linux: Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/105.0.5195.79 Mobile DuckDuckGo/5 Safari/537.36
这样就可以了,但是当我在我的笔记本电脑上玩时,userAgent 是:
Mozilla/5.0 (Linux: Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Mobile Safari/537.36 Edg/105.0.1343.33
所以我使用的方法都是在“Android”上使用的,因此移动设备和笔记本电脑都可以作为移动设备触发。
有没有不同的方法,或者更好的方法来做到这一点?
谢谢。
我猜这是 Chrome 异常(版本 15 和 16)。 在 Firefox 和 MS Edge 我没有这个问题。
所以我做了一个临时的快速修复方法:
(... code before with my toMatchItem to mobile and then)
// Chrome browser exception
let isChrome = navigator.userAgent.match(/chrome|chromium|crios/i);
let isChromeException = navigator.userAgent == 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Mobile Safari/537.36';
return toMatch.some((toMatchItem) => navigator.userAgent.match(toMatchItem)) && !(isChrome && isChromeException);
将此添加到您的移动条件中: && !(isChrome && isChromeException)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.