124 lines
3.3 KiB
TypeScript
124 lines
3.3 KiB
TypeScript
|
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';
|
||
|
}
|
||
|
}
|