You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何准确识别iPhone设备上的Chrome等第三方浏览器

iPhone端Chrome浏览器准确识别方案

原有代码检测失效是因为iOS平台限制所有第三方浏览器必须使用WebKit内核,默认UA会携带Safari相关字段,但Chrome等第三方浏览器都会在UA中追加自身专属标识,优先匹配这些标识即可准确识别,不存在技术障碍。

Chrome for iOS在UA中追加的专属标识为CriOS,将UA转为小写后匹配crios字段,即可判定当前为iOS端Chrome环境。

修正后的完整检测代码

var browser = (function (agent) {
    switch (true) {
        case agent.indexOf("edge") > -1: return "MS Edge (EdgeHtml)";
        case agent.indexOf("edg/") > -1: return "MS Edge Chromium";
        // iOS端第三方浏览器专属标识,需放在Safari判断前优先匹配
        case agent.indexOf("edgios") > -1: return "MS Edge (iOS)";
        case agent.indexOf("fxios") > -1: return "Firefox (iOS)";
        case agent.indexOf("oprios") > -1 && !!window.opr: return "Opera (iOS)";
        case agent.indexOf("crios") > -1 && !!window.chrome: return "Chrome (iOS)";
        case agent.indexOf("opr") > -1 && !!window.opr: return "Opera";
        case agent.indexOf("chrome") > -1 && !!window.chrome: return "Chrome";
        case agent.indexOf("trident") > -1: return "Internet Explorer";
        case agent.indexOf("firefox") > -1: return "Firefox";
        case agent.indexOf("safari") > -1: return "Safari";
        default: return "other";
    }
})(window.navigator.userAgent.toLowerCase());

关键注意点

  • 匹配顺序优先级:iOS端第三方浏览器的专属标识判断,必须放在通用Safari判断逻辑之前,否则会被提前命中Safari分支导致误判
  • 内核特征无法区分iOS端浏览器:所有iOS第三方浏览器都使用和Safari相同的WebKit内核,仅靠内核相关API无法区分具体浏览器产品
  • 极端场景容错:如果用户手动修改UA、或者使用特殊的隐私浏览模式篡改了浏览器标识,任何基于UA的检测方案都无法保证100%准确,这类场景没有通用的完美解决方案

内容的提问来源于stack exchange,提问作者user3826764

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 20:54:18