检测设备是iOS还是Android,然后重定向

Posted

技术标签:

【中文标题】检测设备是iOS还是Android,然后重定向【英文标题】:Detect if device is iOS or Android, and then redirect 【发布时间】:2019-01-25 09:50:19 【问题描述】:

所以我有一个网站,我想要的是当打开我的网站时:www.example.com/download.html 我想首先检测设备是ios设备还是android设备,然后重定向到另一个链接,例如 www.google.com(只是一个示例)。我想要不同操作系统的不同链接。关于如何管理这个的任何提示? :)

【问题讨论】:

这个问题类似:***.com/q/6322112/7362396 或者,如果您不想在源代码中放置太多代码,可以通过快速的 Google 搜索找到一个看起来很有前途的库:github.com/WhichBrowser/Parser-php 【参考方案1】:

您可以使用用户代理字符串来检测不同类型的设备,如下所示:

function androidOrIOS() 
    const userAgent = navigator.userAgent;
    if(/android/i.test(userAgent))
        return 'android';
    
    if(/iPad|iPhone|iPod/i.test(userAgent))
        return 'ios';
    

【讨论】:

我要把这个放到download.html中吗? 是的,您可以使用 window.location.replace("some link"); 重定向用户或 window.location.href = "一些链接"; 我是否需要在 html 文件中添加其他内容?如果代码是计算机而不是设备,您还可以显示代码吗?【参考方案2】:

可以使用Navigator来判断设备类型

function navigate() 
    if((/Mobi|Android/i.test(navigator.userAgent)))
        window.location.href = 'android url ';
    
    if(/Mobi|iPad|iPhone|iPod/i.test(navigator.userAgent))
        window.location.href = 'ios url ';
    

【讨论】:

Navigator 的支持范围有多广? 在我看来,在第二个if 中搜索“Mobi”是不必要的,因为第一个已经捕获了这种情况。总的来说,在我看来,仅凭这一点就无法正常工作。

以上是关于检测设备是iOS还是Android,然后重定向的主要内容,如果未能解决你的问题,请参考以下文章

重定向与管道

重定向和管道

重定向和管道

对于某些版本的 Android,FB 登录的 Expo AuthSession 不会重定向到 expo App

如何保护 Django 中的静态 HTML 文件? (重定向前需要登录)

WordPress对url做重定向处理