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 腾讯视频会员平台技术中心