@mt-kit/utils
Version:
219 lines (218 loc) • 3.46 kB
TypeScript
import { EUnknown } from "../enum";
export interface IBrowser {
name: string;
version: string | EUnknown;
}
export interface IFeatures {
/**
* 触摸支持
*/
touchSupport: boolean;
/**
* 最大触摸点数
*/
maxTouchPoints: number;
/**
* 振动支持
*/
vibrate: boolean;
/**
* WebGL支持
*/
webglSupport: boolean;
/**
* WebRTC支持
*/
webrtcSupport: boolean;
}
export interface II18n {
/**
* 时区
*/
timeZone: string;
/**
* 夏令时
*/
daylightSaving: boolean;
/**
* 数字格式
*/
numberFormat: string;
/**
* 货币格式
*/
currencyFormat: string;
/**
* 日期格式
*/
dateFormat: string;
/**
* 时间格式
*/
timeFormat: string;
}
export interface ILocation {
/**
* 纬度
*/
latitude: number;
/**
* 经度
*/
longitude: number;
}
export interface IMemory {
/**
* 已使用堆内存
* 单位:MB
*/
usedJSHeapSize: number;
/**
* 总堆内存
* 单位:MB
*/
totalJSHeapSize: number;
/**
* 堆内存限制
* 单位:MB
*/
jsHeapSizeLimit: number;
/**
* 设备物理内存
* 单位:GB
* 注意:只有部分浏览器支持
*/
deviceMemory?: number;
}
export interface IScreen {
/**
* 宽度
*/
width: number;
/**
* 高度
*/
height: number;
/**
* 可用宽度
*/
availWidth: number;
/**
* 可用高度
*/
availHeight: number;
/**
* 颜色深度
*/
colorDepth: number;
/**
* 像素深度
*/
pixelDepth: number;
/**
* 设备像素比
*/
devicePixelRatio: number;
}
export interface ISensor {
/**
* 传感器支持
*/
accelerometer: boolean;
/**
* 加速度计支持
*/
gyroscope: boolean;
/**
* 磁力计支持
*/
magnetometer: boolean;
/**
* 环境光传感器
*/
ambientLight: boolean;
/**
* 气压计支持
*/
barometer: boolean;
}
/**
* 设备信息获取选项
*/
export interface IDeviceAllOptions {
/**
* 操作系统
*/
operatingSystem?: boolean;
/**
* 浏览器
*/
browser?: boolean;
/**
* 语言
*/
language?: boolean;
/**
* 在线状态
*/
onLine?: boolean;
/**
* 屏幕
*/
screen?: boolean;
/**
* CPU核心数
*/
cpuCores?: boolean;
/**
* 硬件并发数
*/
hardwareConcurrency?: boolean;
/**
* 内存
*/
memory?: boolean;
/**
* 设备特性
*/
features?: boolean;
/**
* 传感器
*/
sensor?: boolean;
/**
* 国际化
*/
i18n?: boolean;
/**
* 位置
*/
location?: boolean;
/**
* 公网IP
*/
publicIp?: boolean;
/**
* UA
*/
ua?: boolean;
}
/**
* 设备信息汇总接口
*/
export interface IDeviceAll {
operatingSystem: string;
browser: IBrowser;
language: string;
onLine: boolean;
screen: IScreen;
cpuCores: number;
hardwareConcurrency: number;
memory: IMemory;
features: IFeatures;
sensor: ISensor;
i18n: II18n;
ua: string;
location: ILocation;
publicIp: string;
}