美文网首页
uniapp 单例的写法

uniapp 单例的写法

作者: 可乐小子 | 来源:发表于2025-05-05 15:38 被阅读0次

import storage from "@/utils/storage";
import { APP_USER_ID, APP_USER_KIND, APP_TOKEN_KEY } from "@/config/constants";
import { createUserPageUseTimeApi, createUserOnlineUseTimeApi } from "@/service/api/analytics.ts";
type PageTimeRecord = {
pagePath ?: string
pageName ?: string
enterTime : number
leaveTime ?: number
duration ?: number
userId : string
userKind : string
userRecordId : string
platform : string
deviceInfo ?: UniApp.GetSystemInfoResult //预留
}

class Analytics {
private static instance : Analytics
private currentPage : PageTimeRecord | null = null
private currentPageApp : PageTimeRecord | null = null
// private pageRecords: PageTimeRecord[] = []
private deviceInfo : UniApp.GetSystemInfoResult | null = null
private analyticsSwith = import.meta.env.VITE_ANALYTICS_SWITCH
private constructor() {
// 获取设备信息
uni.getSystemInfo({
success: (res) => {
this.deviceInfo = res
}
})
}

//生成UUID
public generateUUID() : string {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        const r = Math.random() * 16 | 0
        const v = c === 'x' ? r : (r & 0x3 | 0x8)
        return v.toString(16)
    })
}

public static getInstance() : Analytics {
    if (!Analytics.instance) {
        Analytics.instance = new Analytics()
    }
    return Analytics.instance
}

}

//使用方式:
import Analytics from '@/utils/analytics'
const analytics = Analytics.getInstance()
analytics.generateUUID()

相关文章

网友评论

      本文标题:uniapp 单例的写法

      本文链接:https://www.haomeiwen.com/subject/xtsrijtx.html