【问题标题】:If the device is huawei? [duplicate]如果设备是华为? [复制]
【发布时间】:2021-10-25 12:35:53
【问题描述】:

我只是创建一个页面来将用户重定向到应用程序链接(google play & apple store & Huawei store)

我只是从this链接获取代码

代码是:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
    <title>Test</title>
    <script>
        function getMobileOperatingSystem() {
            var userAgent = navigator.userAgent || navigator.vendor || window.opera;
            if (/android/i.test(userAgent)) {
                return "Android";
            }
            if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
                return "iOS";
            }
            return "unknown";
        }
    </script>
</head>

<body onload="DetectAndServe()">
    <script>
        function DetectAndServe() {
            let os = getMobileOperatingSystem();
            if (os == "Android") {
                window.location.href = "https://play.google.com";
            } else if (os == "iOS") {
                window.location.href = "https://apps.apple.com";
            } else {
                window.location.href = "https://my-link.com";
            }
        }
    </script>
</body>

</html>

我们知道华为有自己的商店,我如何检查设备是否是华为重定向到华为链接?

【问题讨论】:

  • @Justinas 这就像我的代码有问题! “我需要检查Huawei device
  • @phuzi 这就像我的代码有问题! “我需要检查Huawei device
  • 您在检查 Android 之前是否尝试过if (/huawei/i.test(userAgent)),因为它可以通过两项测试?

标签: javascript html


【解决方案1】:

您可能需要为华为设备测试/huawei/i.test(userAgent),因为设备制造商与操作系统检查安卓不同。

确保华为测试在安卓测试之前,否则永远匹配不了!

我还将更改函数以直接返回应用商店 url,而不是检查操作系统,然后在 if (os == "Android") 块内对华为设备进行另一次用户代理测试。

function getAppStoreUrl() {
  var userAgent = navigator.userAgent || navigator.vendor || window.opera;
  if (/huawei/i.test(userAgent)) {
    return "https://my-link.com";
  }
  if (/android/i.test(userAgent)) {
    return "https://play.google.com";
  }
  if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
    return "https://apps.apple.com";
  }
  return null;
}

function DetectAndServe() {
  let appStoreUrl = getAppStoreUrl();
  if (appStoreUrl) {
    window.location.href = appStoreUrl;
  }
}

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多