首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何瞄准华为专业用户代理

如何瞄准华为专业用户代理
EN

Stack Overflow用户
提问于 2021-02-04 23:36:20
回答 4查看 1.5K关注 0票数 1

我一直试图找到一种针对华为移动设备的方法,这样我就可以将它们重定向到华为应用商店,但似乎找不到解决方案。到目前为止,我想到的方法是编写一个正则表达式来检查从navigator.userAgent对象返回的字符串中的HUAWEI | Huawei | huawei。但我不确定它是否能在所有这样的设备上工作,尽管我是这样想的,看看这些sample userAgents,有没有模拟器或类似浏览器堆栈的东西来试一下?

EN

回答 4

Stack Overflow用户

发布于 2021-02-05 09:36:05

您可以通过查询用户代理来判断当前设备是否为华为手机。

目前,华为浏览器提供基于HMS或GMS设备类型的UAs。以下是示例(浏览器版本号、HMS版本号、GMS版本号和设备信息将相应更改):

  1. HMS和GMS都已安装。以下是一个示例:

Mozilla/5.0 (Linux;Android 6.0.1;LYA-al00;HMSCore/4.0.0 GMS/10.4 ) AppleWebKit/537.36 (KHTML,如Gecko) Chrome/70.0.3538.64华为浏览器/10.0.3.102 Mobile Safari/537.36

  1. 如果仅安装了

,则以下为示例:

Mozilla/5.0 (Linux;Android 6.0.1;LYA-al00;HMSCore/4.0.0) AppleWebKit/537.36 (KHTML,如Gecko) Chrome/70.0.3538.64华为浏览器/10.0.3.102 Mobile Safari/537.36

  1. 仅安装了GMS。以下是一个示例:

Mozilla/5.0 (Linux;Android 6.0.1;LYA-al00;GMS/10.4) AppleWebKit/537.36 (KHTML,如Gecko) Chrome/70.0.3538.64华为浏览器/10.0.3.102 Mobile Safari/537.36

  1. 没有HMS或GMS。以下是一个示例:

Mozilla/5.0 (Linux;Android 6.0.1;LYA-AL00 ) AppleWebKit/537.36 (KHTML,如壁虎) Chrome/70.0.3538.64华为浏览器/10.0.3.102 Mobile Safari/537.36

票数 4
EN

Stack Overflow用户

发布于 2021-02-04 23:41:01

我不知道如何针对特定类型的手机,但您可以测试用户代理字符串:

代码语言:javascript
复制
/**
 * Determine the mobile operating system.
 * This function returns one of 'iOS', 'Android', 'Windows Phone', or 'unknown'.
 *
 * @returns {String}
 */
function getMobileOperatingSystem() {
  var userAgent = navigator.userAgent || navigator.vendor || window.opera;

      // Windows Phone must come first because its UA also contains "Android"
    if (/windows phone/i.test(userAgent)) {
        return "Windows Phone";
    }

    if (/android/i.test(userAgent)) {
        return "Android";
    }

    // iOS detection from: http://stackoverflow.com/a/9039885/177710
    if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
        return "iOS";
    }

    return "unknown";
}
票数 2
EN

Stack Overflow用户

发布于 2021-09-22 12:46:22

最简单、最短的检查方法:(不包括片剂)

代码语言:javascript
复制
navigator.userAgent.match(/"ALP-"|"AMN-"|"ANA-"|"ANE-"|"ANG-"|"AQM-"|"ARS-"|"ART-"|"ATU-"|"BAC-"|"BLA-"|"BRQ-"|"CAG-"|"CAM-"|"CAN-"|"CAZ-"|"CDL-"|"CDY-"|"CLT-"|"CRO-"|"CUN-"|"DIG-"|"DRA-"|"DUA-"|"DUB-"|"DVC-"|"ELE-"|"ELS-"|"EML-"|"EVA-"|"EVR-"|"FIG-"|"FLA-"|"FRL-"|"GLK-"|"HMA-"|"HW-"|"HWI-"|"INE-"|"JAT-"|"JEF-"|"JER-"|"JKM-"|"JNY-"|"JSC-"|"LDN-"|"LIO-"|"LON-"|"LUA-"|"LYA-"|"LYO-"|"MAR-"|"MED-"|"MHA-"|"MLA-"|"MRD-"|"MYA-"|"NCE-"|"NEO-"|"NOH-"|"NOP-"|"OCE-"|"PAR-"|"PIC-"|"POT-"|"PPA-"|"PRA-"|"RNE-"|"SEA-"|"SLA-"|"SNE-"|"SPN-"|"STK-"|"TAH-"|"TAS-"|"TET-"|"TRT-"|"VCE-"|"VIE-"|"VKY-"|"VNS-"|"VOG-"|"VTR-"|"WAS-"|"WKG-"|"WLZ-"|"YAL"/i)

该方法使用this github repo.提供的设备id列表中的前缀和破折号作为指纹来检测华为设备。

即。华为P智能2019设备ids:"POT-LX1AF","POT-LX2J","POT-LX1RUA","POT-LX3"列表,但使用POT-进行检测。注意:我们假设,这个前缀对于华为是唯一的。如果使用相同前缀的不同品牌的设备发送,则该设备id也将计入华为。

关于Huawei字符串检查方法,检查该字符串并不能保证设备是否为Huawei。

如果访问者使用第三方浏览器,如Chrome,用户代理发送的不包含此字符串,则当访问者来自应用内浏览器视图时发送此字符串,如推特或Instagram (当您单击这些应用中的链接时,网站将在web视图中打开).It也会随花瓣搜索应用(华为官方搜索应用)等应用的访问发送。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66048820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档