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

Flutter Web端如何获取物理设备具体型号?

Web端获取物理设备具体型号的可行性与实现方案

Web端可以有限度地获取物理设备的具体型号,但不同平台(iOS/Android)的支持情况差异较大,且存在一定限制:

iOS Web端

iOS的Safari及基于WebKit内核的浏览器,会在userAgent中包含设备的内部标识符(如iPhone11,8对应iPhone 11),可以通过解析该标识符并映射为具体型号:

  • 需要维护一个设备标识符与型号的映射表(苹果会持续更新设备代码,需定期维护)
  • 通过Flutter Web的dart:html库获取userAgent,再做正则匹配和映射

Android Web端

Android平台的Web浏览器(如Chrome)通常不会在userAgent中暴露精准的设备型号,仅能获取品牌(如Samsung)或系统版本信息,大部分情况下无法直接拿到三星S22 Ultra这类具体型号,仅少数定制浏览器或厂商设备会特殊处理。

Flutter Web端修改示例代码

替换你当前的Web端设备类型判断逻辑,加入userAgent解析:

import 'dart:html' as html;

// 解析Web端设备型号
String getWebDeviceModel() {
  final userAgent = html.window.navigator.userAgent.toLowerCase();

  // 处理iOS设备
  if (userAgent.contains('iphone')) {
    final deviceCodeMatch = RegExp(r'iphone(\d+,\d+)').firstMatch(userAgent);
    if (deviceCodeMatch != null) {
      final deviceCode = deviceCodeMatch.group(1);
      // 示例映射表,需根据实际需求补充完整
      final iosModelMap = {
        '11,8': 'iPhone 11',
        '12,1': 'iPhone 11 Pro',
        '12,3': 'iPhone 11 Pro Max',
        '13,1': 'iPhone 12',
        '13,2': 'iPhone 12 Pro',
      };
      return iosModelMap[deviceCode] ?? 'iOS Web';
    }
    return 'iOS Web';
  } else if (userAgent.contains('ipad')) {
    return 'iPad Web';
  } else if (userAgent.contains('android')) {
    // 尝试提取Android设备品牌(型号大概率无法获取)
    final brandMatch = RegExp(r'(samsung|xiaomi|huawei|oneplus)').firstMatch(userAgent);
    if (brandMatch != null) {
      final brand = brandMatch.group(1)!.toUpperCase();
      return '$brand Android Web';
    }
    return 'Android Web';
  } else {
    return 'Desktop Web';
  }
}

// 原代码替换后的逻辑
deviceType: kIsWeb
    ? getWebDeviceModel()
    : Platform.isAndroid
        ? (await deviceInfo.androidInfo).model
        : (await deviceInfo.iosInfo).utsname.machine,

注意事项

  • iOS设备的映射表需要自行维护,可根据苹果官方设备标识符信息更新
  • Android Web端的型号获取可靠性极低,不要依赖该场景获取精准型号
  • 部分浏览器的隐私保护设置可能会篡改userAgent,导致信息不准确
  • 不同浏览器的userAgent格式存在差异,需做好兼容处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:01:00