Skip to content

Env

Env@tmagic/core 的环境检测类,用于检测当前运行环境的设备和系统信息。

构造函数

typescript
new Env(ua?: string, options?: Record<string, boolean | string>)

参数

参数类型说明
uastringUser Agent 字符串(可选,默认使用 globalThis.navigator?.userAgent
optionsRecord<string, boolean | string>额外的环境字段(可选)。构造时会通过 Object.entries 写入到实例上,可用于扩展自定义环境标记。注意:构造函数在 ua 为空(包括 ''undefined 等 falsy 值)时会提前返回,此时 options 同样不会被应用

属性

所有属性均为可赋值的公共字段(非只读),默认布尔值为 false

属性类型说明
isIosboolean是否为 iOS 系统
isIphoneboolean是否为 iPhone 设备
isIpadboolean是否为 iPad 设备
isAndroidboolean是否为 Android 系统
isAndroidPadboolean是否为 Android 平板
isMacboolean是否为 Mac 系统
isWinboolean是否为 Windows 系统
isMqqboolean是否在手机 QQ 中
isWechatboolean是否在微信中
isWebboolean是否为 Web 环境
isOpenHarmonyboolean是否为鸿蒙系统

Env 上还允许通过索引签名 [x: string]: any 写入自定义字段。

使用示例

typescript
import { Env } from '@tmagic/core';

// 使用当前浏览器的 UA
const env = new Env();

if (env.isIos) {
  console.log('当前是 iOS 设备');
}

if (env.isWechat) {
  console.log('在微信中打开');
}

// 使用自定义 UA
const customEnv = new Env('Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)');
console.log(customEnv.isIphone); // true

// 通过 options 注入自定义环境标记
const customEnv2 = new Env(navigator.userAgent, { isMiniProgram: true });
console.log(customEnv2.isMiniProgram); // true

在 App 中使用

typescript
import App from '@tmagic/core';

const app = new App({
  ua: navigator.userAgent
});

// 通过 app.env 访问环境信息
if (app.env.isAndroid) {
  // Android 特定逻辑
}

Powered by 腾讯视频会员平台技术中心