【问题标题】:Javascript detect if on mobile deviceJavascript检测是否在移动设备上
【发布时间】:2022-09-30 19:45:36
【问题描述】:

好的,这已经回答了很多次了,但它不适合我。我正在使用 navigator.userAgent 并搜索某些单词 android|iphone|kindle|ipad。但这不起作用。当我在手机上运行时,userAgent 是:

Mozilla/5.0 (Linux: Android 12) AppleWebKit/537.36 (KHTML, like Gecko) 版本/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”,因此移动设备和笔记本电脑都作为移动设备触发。

有没有不同的方法,或者更好的方法来做到这一点?

谢谢。

标签: javascript mobile


【解决方案1】:

我猜这是 chrome 异常(版本 15 和 16)。 在 Firefox 和 MS Edge 中我没有这个问题。

所以我做了一个解决方法来做一个临时的快速修复。

//JAVASCRIPT (bellow)

(...之前的代码与我的 toMatchItem 到移动然后)

//chrome browser exceptione 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') ? true: false;

返回 toMatch.some((toMatchItem) => navigator.userAgent.match(toMatchItem)) && !(isChrome && isChromeException);

#####################

在您的条件手机上添加此条件: && !(isChrome && isChromeException)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-12
    • 2021-09-22
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多