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'; } }