super-hero/assets/cc-common/cc-util/UmDeviceInfo.ts

124 lines
3.3 KiB
TypeScript
Raw Normal View History

2024-04-19 03:49:41 -07:00
import * as cc from 'cc';
import { sys } from 'cc';
import { UmUtil } from './UmUtil';
export class UmDeviceInfo {
public static safeArenaViewSize: cc.Size = cc.Size.ZERO;
public static DEVICE_INFO = {
os: sys.os,
osVersion: sys.osVersion,
platform: sys.platform,
browser: sys.browserType,
browserVersion: sys.browserVersion,
language: sys.language,
ssid: UmUtil.uuid(),
model: UmDeviceInfo.getModel(),
manufactor: UmDeviceInfo.getManufactor()
};
public static get device_info() {
return UmDeviceInfo.DEVICE_INFO;
}
public static getUUID(): string {
return UmUtil.uuid();
}
public static getModel(): string {
let result = "";
if (!sys.isBrowser) {
if (sys.os == sys.OS.ANDROID) {
result = cc.native.reflection.callStaticMethod("com/cocos/game/AppActivity", "getModel", "()Ljava/lang/String;");
}
else if (sys.os == sys.OS.IOS) {
result = cc.native.reflection.callStaticMethod("NativeBridge", "GetModel:", "0");
}
}
// console.log("getModel ==> ", result);
return result;
}
public static getManufactor(): string {
let result = "";
if (!sys.isBrowser) {
if (sys.os == sys.OS.ANDROID) {
result = cc.native.reflection.callStaticMethod("com/cocos/game/AppActivity", "getManufactor", "()Ljava/lang/String;");
}
else if (sys.os == sys.OS.IOS) {
result = "apple";
}
}
// console.log("getManufactor ==> ", result);
return result;
}
public static setSafeArenaViewSize(size: cc.Size) {
UmDeviceInfo.safeArenaViewSize = size;
}
public static get isMobile(): boolean {
return cc.sys.isMobile;
}
public static get isAndroid(): boolean {
return cc.sys.os == cc.sys.OS.ANDROID;
}
public static get isIos(): boolean {
return cc.sys.os == cc.sys.OS.IOS;
}
public static get isBrowser(): boolean {
return cc.sys.isBrowser;
}
public static get isNative(): boolean {
return !this.isBrowser;
}
public static get isIosNative(): boolean {
return this.isNative && this.isIos;
}
public static get isAndroidNative(): boolean {
return this.isNative && this.isAndroid;
}
public static get isDesktopBrowser(): boolean {
return this.isBrowser && !this.isMobile;
}
public static get isMobileBrowser(): boolean {
return this.isBrowser && this.isMobile;
}
public static get isAndroidBrowser(): boolean {
return this.isBrowser && this.isAndroid;
}
public static get isIosBrowser(): boolean {
return this.isBrowser && this.isIos;
}
public static get isCanVibrate() {
if (this.isMobile) {
if (this.isBrowser && this.isIos) {
return false;
}
else {
return true;
}
}
return false;
}
public static get browserType(): string {
return cc.sys.browserType.toString().toLocaleLowerCase();
}
public static get isBrowserSafari(): boolean {
return this.isBrowser && this.browserType == 'safari';
}
}