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

如何改进WebGL应用的设备检测代码,区分iOS与Android?

实现WebGL移动端iOS/Android设备检测改进

你可以通过扩展现有JS插件和Unity代码,实现对iOS、Android设备的精准识别,具体修改如下:

1. 更新Plugin.jslib文件

在原有移动端检测基础上,新增两个函数分别检测iOS和Android设备,利用浏览器navigator.userAgent进行判断:

var MyPlugin = {
    IsMobile: function()
    {
        return UnityLoader.SystemInfo.mobile;
    },
    IsIOS: function() {
        // 匹配iPhone/iPad/iPod,排除Windows Phone的误判
        return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
    },
    IsAndroid: function() {
        return /Android/.test(navigator.userAgent);
    }
};

mergeInto(LibraryManager.library, MyPlugin);

2. 修改Unity端代码

新增对应的外部调用函数,并封装成公开方法供业务逻辑使用:

[DllImport("__Internal")]
private static extern bool IsMobile();

[DllImport("__Internal")]
private static extern bool IsIOS();

[DllImport("__Internal")]
private static extern bool IsAndroid();

public bool IsMobileDevice()
{
#if !UNITY_EDITOR && UNITY_WEBGL
    return IsMobile();
#endif
    return false;
}

public bool IsIOSDevice()
{
#if !UNITY_EDITOR && UNITY_WEBGL
    return IsIOS();
#endif
    return false;
}

public bool IsAndroidDevice()
{
#if !UNITY_EDITOR && UNITY_WEBGL
    return IsAndroid();
#endif
    return false;
}

说明

  • 利用navigator.userAgent是Web环境下检测设备系统的常用可靠方式,针对iOS做了特殊处理(排除MSStream),避免将Windows Phone设备误判为iOS。
  • 保持原有IsMobile函数的兼容性,新增的两个函数可独立调用,也可结合使用(比如先判断是否是移动端,再细分系统)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:02:18