automated_uniapp/uni_modules/cool-app/utils/index.ts

98 lines
2.0 KiB
TypeScript
Raw Normal View History

2025-01-09 16:16:11 +08:00
import { isAndroid, uuid } from "/@/cool/utils";
// 版本比较
export function compareVersions(v1: string, v2: string) {
const arr1 = v1.split(".").map(Number);
const arr2 = v2.split(".").map(Number);
const maxLength = Math.max(arr1.length, arr2.length);
for (let i = 0; i < maxLength; i++) {
const num1 = arr1[i] || 0;
const num2 = arr2[i] || 0;
if (num1 > num2) return 1;
if (num2 > num1) return -1;
}
return 0;
}
// 获取版本号
export function getVersion(): Promise<string> {
return new Promise((resolve) => {
// #ifdef APP
const packVersion: any = plus.runtime.version;
const appid: any = plus.runtime.appid;
plus.runtime.getProperty(appid, function (widgetInfo) {
resolve(
String(packVersion) > String(widgetInfo.version) ? packVersion : widgetInfo.version,
);
});
// #endif
// #ifndef APP
resolve("1.0.0");
// #endif
});
}
// 获取 deviceId
export function getDeviceId(): string {
// #ifdef APP
return plus.device.uuid!;
// #endif
// #ifndef APP
return uuid();
// #endif
}
// 获取 oaid
export function getOAID() {
return new Promise((resolve) => {
plus.device.getOAID({
success(res) {
resolve(res.oaid);
},
fail() {
resolve(0);
},
});
});
}
// 获取 androidId
export function getAndroidId() {
if (isAndroid) {
const Settings = plus.android.importClass("android.provider.Settings");
const main = plus.android.runtimeMainActivity();
// @ts-ignore
return Settings.Secure.getString(main.getContentResolver(), Settings.Secure.ANDROID_ID);
}
}
// 获取 mac
export function getMac() {
if (isAndroid) {
const net = plus.android.importClass("java.net.NetworkInterface");
// @ts-ignore
const wl0 = net.getByName("wlan0");
const macByte = wl0.getHardwareAddress();
let str = "";
for (let i = 0; i < macByte.length; i++) {
let tmp = "";
let num = macByte[i];
if (num < 0) {
tmp = (255 + num + 1).toString(16);
} else {
tmp = num.toString(16);
}
if (tmp.length == 1) {
tmp = "0" + tmp;
}
str += tmp;
}
return str;
}
}