繁体   English   中英

Javascript 检测是否在移动设备上

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM