检测用户代理对android有效,但对iphone无效?

问题描述 投票:0回答:1

目标: 检测用户是否在iPhoneiPadAndroid(移动设备)上,并根据该条件运行一些代码。

问题发生了什么?: 似乎能检测到安卓系统,但检测不到iPhoneiPod。

我尝试过什么。我用Chrome Devtools进行测试 I am testing this with Chrome devtools. 我从Chrome Devtools中选择了用户代理,类似于:Chrome - iPhone ,或者Chrome - Android。Chrome - iPhone , 或Chrome - Android Mobile.

user agent iPhone

我试着调试了一下,得到:uagent = "mozilla5.0 (iphone; cpu iphone os 9_1 like mac os x) applewebkit601.1.46 (khtml, like gecko) version9.0 mobile13b137 safari601.1" 。

然而它完全跳过了这个条件

我也看了不同的文章,我的匹配条件看起来是正确的。事实上,我是从SO的一篇文章中得到的。但在W3Schools、mozilla文档等上看起来都是一样的。我也试过把代码从服务方法中移到组件本身,但没有帮助。我记得我测试过这个,它在某一点上是可以工作的(用iPhone作为useragent),但不知道是什么改变了。

AngularTypeScript:

this.isMobile = this.securityService.isUserAgentMobile();

isUserAgentMobile(): boolean {
        var isMobile = false;
        var uagent = navigator.userAgent.toLowerCase();
        if (uagent.match(/iPad|iPhone|android/)) {
            console.log("user agent is mobile!");
            isMobile = true;
        }
        return isMobile;
}
javascript typescript user-agent
1个回答
0
投票

因为它设置为小写,所以匹配也必须是小写。

var uagent = navigator.userAgent.toLowerCase();
if (uagent.match(/ipad|iphone|android/))
© www.soinside.com 2019 - 2024. All rights reserved.