使用Javascript检测操作系统类型,并针对每个操作系统执行不同的操作

使用Javascript检测操作系统类型,并针对每个操作系统执行不同的操作,javascript,android,iphone,browser,Javascript,Android,Iphone,Browser,所以我四处寻找,试图找到适合我的情况的东西,虽然我发现了很多片段,可以让我检测屏幕大小或特定的操作系统,但我发现的解决方案不完整,或者我不知道如何修改它们,以便它们按照我需要的方式工作 我最喜欢的解决方案是,但我不需要android或windows phone检测器。当我自己尝试添加它时,如果我使用Android而不是linux,我似乎无法让它返回Android BrowserDetect.OS 我在linux之前的dataOS:property、usign navigator.userAgen

所以我四处寻找,试图找到适合我的情况的东西,虽然我发现了很多片段,可以让我检测屏幕大小或特定的操作系统,但我发现的解决方案不完整,或者我不知道如何修改它们,以便它们按照我需要的方式工作

我最喜欢的解决方案是,但我不需要android或windows phone检测器。当我自己尝试添加它时,如果我使用Android而不是linux,我似乎无法让它返回Android

BrowserDetect.OS

我在linux之前的dataOS:property、usign navigator.userAgent和navigator.platform中添加了这个,但没有成功

{
    string: navigator.userAgent,
    substring: "android",
    identity: "android"
},
我做错了什么?或者,如果你能提供更好的解决方案,我洗耳恭听。基本上,我想让页面做的是检测您正在使用的操作系统,并将您重定向到特定于每个操作系统的链接

如果您是IOS,请转到链接a;如果您是android,请转到链接b;如果您是blackberry 10,请转到链接c;如果您是windows phone,请转到链接c;其他所有人请转到链接

非常感谢您的帮助!我认为最好的选择是设置案例,但我无法理解操作系统检测部分。

我将案例改为“Android”,似乎效果不错:


如果这仍然不适用于您(尽管它应该适用),您可以使用字符串
navigator.userAgent.toLowerCase()
,并与
“android”
匹配

我编写了一个小库,它将返回您需要知道的有关浏览器类型的所有数据。你可以在里面打电话

if(what.device._android() == true){ 
// do code 
}

匹配项是否区分大小写?也就是说,“安卓”在“安卓”不起作用的地方能起作用吗?不,我用安卓和安卓两种方法都试过了:(太奇怪了!我之前试的时候它不起作用……谢谢!还有一个问题(实际上是两个问题),如果我有一个后续问题,我需要制作一个单独的线程还是可以在这里提问?如果我可以在这里提问,我将如何让它与windows phone一起工作?(我使用BB 10获得它,但使用windows phone时,它会吐出windows而不是windows phone。)(windows phone用户代理有一个windows phone用户代理,但我无法获取使其发生的代码。)如果我必须将此移动到新线程并将其标记为已回答,请让我知道,我会这样做:)因为这个问题很简单/非常相关,所以我觉得在这里问这个问题很好。我能够让它工作,并且已经更新了JSFIDLE。好吧,这很烦人!我尝试了完全相同的方法,我一直使用windows而不是windows phone!!(android也是如此!我接受linux)但是当我复制你的东西的时候,效果很好,哦,奇怪,我一定是有点打字错误。啊,谢谢!我会把它标记为完成!
if(what.device._android() == true){ 
// do code 
}