273 lines
8.1 KiB
TypeScript
273 lines
8.1 KiB
TypeScript
import { TDAnalytics, TDConfig, TDMode, TDNetworkType } from '@thinkingdata/analytics';
|
|
import I18n from '@ohos.i18n';
|
|
export class TDOpenHarmonyProxy {
|
|
|
|
static init(appId: string, serverUrl: string, mode: number, timeZone: string, version: number, publicKey: string) {
|
|
let config = new TDConfig()
|
|
config.appId = appId
|
|
config.serverUrl = serverUrl
|
|
if (mode == 1) {
|
|
config.mode = TDMode.DEBUG
|
|
} else if (mode == 2) {
|
|
config.mode = TDMode.DEBUG_ONLY
|
|
} else {
|
|
config.mode = TDMode.NORMAL
|
|
}
|
|
if (timeZone) {
|
|
config.defaultTimeZone = I18n.getTimeZone(timeZone)
|
|
}
|
|
if (publicKey && version > 0) {
|
|
config.enableEncrypt(version, publicKey)
|
|
}
|
|
TDAnalytics.initWithConfig(globalThis.context, config)
|
|
}
|
|
|
|
static enableLog(enable: boolean) {
|
|
TDAnalytics.enableLog(enable)
|
|
}
|
|
|
|
static setLibraryInfo(libName: string, libVersion: string) {
|
|
TDAnalytics.setCustomerLibInfo(libName, libVersion)
|
|
}
|
|
|
|
static setDistinctId(distinctId: string, appId: string) {
|
|
TDAnalytics.setDistinctId(distinctId, appId)
|
|
}
|
|
|
|
static getDistinctId(appId: string): string {
|
|
return TDAnalytics.getDistinctId(appId)
|
|
}
|
|
|
|
static login(accountId: string, appId: string) {
|
|
TDAnalytics.login(accountId, appId)
|
|
}
|
|
|
|
static logout(appId: string) {
|
|
TDAnalytics.logout(appId)
|
|
}
|
|
|
|
static track(eventName: string, properties: string, timeStamp: number, timeZoneId: string, appId: string) {
|
|
try {
|
|
let time: Date = null;
|
|
let timeZone: I18n.TimeZone = null;
|
|
if (timeStamp > 0) {
|
|
time = new Date(timeStamp)
|
|
if (timeZoneId) {
|
|
if (timeZoneId === 'Local') {
|
|
timeZone = I18n.getTimeZone()
|
|
} else {
|
|
timeZone = I18n.getTimeZone(timeZoneId)
|
|
}
|
|
}
|
|
}
|
|
TDAnalytics.track({
|
|
eventName: eventName,
|
|
properties: this.parseJsonStrict(properties),
|
|
time: time,
|
|
timeZone: timeZone
|
|
}, appId)
|
|
} catch (e) {
|
|
}
|
|
}
|
|
|
|
static trackEvent(eventType: number, eventName: string, properties: string, eventId: string, timeStamp: number,
|
|
timezoneId: string, appId: string) {
|
|
try {
|
|
let time: Date = null;
|
|
let timeZone: I18n.TimeZone = null;
|
|
if (timeStamp > 0) {
|
|
time = new Date(timeStamp);
|
|
if (timezoneId) {
|
|
if (timezoneId == 'Local') {
|
|
timeZone = I18n.getTimeZone()
|
|
} else {
|
|
timeZone = I18n.getTimeZone(timezoneId)
|
|
}
|
|
}
|
|
}
|
|
if (eventType == 1) {
|
|
TDAnalytics.trackFirst({
|
|
eventName: eventName,
|
|
properties: this.parseJsonStrict(properties),
|
|
firstCheckId: eventId,
|
|
time: time,
|
|
timeZone: timeZone
|
|
}, appId)
|
|
} else if (eventType == 2) {
|
|
TDAnalytics.trackUpdate({
|
|
eventName: eventName,
|
|
properties: this.parseJsonStrict(properties),
|
|
eventId: eventId,
|
|
time: time,
|
|
timeZone: timeZone
|
|
}, appId)
|
|
} else if (eventType == 3) {
|
|
TDAnalytics.trackOverwrite({
|
|
eventName: eventName,
|
|
properties: this.parseJsonStrict(properties),
|
|
eventId: eventId,
|
|
time: time,
|
|
timeZone: timeZone
|
|
}, appId)
|
|
}
|
|
} catch (e) {
|
|
}
|
|
}
|
|
|
|
|
|
static setSuperProperties(superProperties: string, appId: string) {
|
|
try {
|
|
TDAnalytics.setSuperProperties(this.parseJsonStrict(superProperties), appId)
|
|
} catch (e) {
|
|
}
|
|
}
|
|
|
|
static unsetSuperProperty(property: string, appId: string) {
|
|
TDAnalytics.unsetSuperProperty(property, appId)
|
|
}
|
|
|
|
static clearSuperProperties(appId: string) {
|
|
TDAnalytics.clearSuperProperties(appId)
|
|
}
|
|
|
|
static getSuperProperties(appId: string): string {
|
|
return TDAnalytics.getSuperProperties(appId)
|
|
}
|
|
|
|
static getPresetProperties(appId: string): string {
|
|
return TDAnalytics.getPresetProperties(appId)
|
|
}
|
|
|
|
static flush(appId: string) {
|
|
TDAnalytics.flush(appId)
|
|
}
|
|
|
|
static userSet(properties: string, timeStamp: number, appId: string) {
|
|
try {
|
|
let time: Date = null;
|
|
if (timeStamp > 0) {
|
|
time = new Date(timeStamp)
|
|
}
|
|
TDAnalytics.userSet({
|
|
properties: this.parseJsonStrict(properties),
|
|
time: time
|
|
}, appId)
|
|
} catch (e) {
|
|
}
|
|
}
|
|
|
|
static userSetOnce(properties: string, timeStamp: number, appId: string) {
|
|
try {
|
|
let time: Date = null;
|
|
if (timeStamp > 0) {
|
|
time = new Date(timeStamp)
|
|
}
|
|
TDAnalytics.userSetOnce({
|
|
properties: this.parseJsonStrict(properties),
|
|
time: time
|
|
}, appId)
|
|
} catch (e) {
|
|
}
|
|
}
|
|
|
|
static userUnset(property: string, timeStamp: number, appId: string) {
|
|
let time: Date = null;
|
|
if (timeStamp > 0) {
|
|
time = new Date(timeStamp)
|
|
}
|
|
TDAnalytics.userUnset({
|
|
property: property,
|
|
time: time
|
|
}, appId)
|
|
}
|
|
|
|
static userAdd(properties: string, timeStamp: number, appId: string) {
|
|
try {
|
|
let time: Date = null;
|
|
if (timeStamp > 0) {
|
|
time = new Date(timeStamp)
|
|
}
|
|
TDAnalytics.userAdd({
|
|
properties: this.parseJsonStrict(properties),
|
|
time: time
|
|
}, appId)
|
|
} catch (e) {
|
|
}
|
|
}
|
|
|
|
static userAppend(properties: string, timeStamp: number, appId: string) {
|
|
try {
|
|
let time: Date = null;
|
|
if (timeStamp > 0) {
|
|
time = new Date(timeStamp)
|
|
}
|
|
TDAnalytics.userAppend({
|
|
properties: this.parseJsonStrict(properties),
|
|
time: time
|
|
}, appId)
|
|
} catch (e) {
|
|
}
|
|
}
|
|
|
|
static userUniqAppend(properties: string, timeStamp: number, appId: string) {
|
|
try {
|
|
let time: Date = null;
|
|
if (timeStamp > 0) {
|
|
time = new Date(timeStamp)
|
|
}
|
|
TDAnalytics.userUniqAppend({
|
|
properties: this.parseJsonStrict(properties),
|
|
time: time
|
|
}, appId)
|
|
} catch (e) {
|
|
}
|
|
}
|
|
|
|
|
|
static userDelete(timeStamp: number, appId: string) {
|
|
let time: Date = null;
|
|
if (timeStamp > 0) {
|
|
time = new Date(timeStamp)
|
|
}
|
|
TDAnalytics.userDelete({
|
|
time: time
|
|
}, appId)
|
|
}
|
|
|
|
static getDeviceId(): string {
|
|
return TDAnalytics.getDeviceId()
|
|
}
|
|
|
|
static setNetWorkType(type: number) {
|
|
if (type == 2) {
|
|
TDAnalytics.setNetworkType(TDNetworkType.WIFI)
|
|
} else {
|
|
TDAnalytics.setNetworkType(TDNetworkType.ALL)
|
|
}
|
|
}
|
|
|
|
static enableAutoTrack(autoTypes: number, appId: string) {
|
|
TDAnalytics.enableAutoTrack(globalThis.context, autoTypes, null, appId)
|
|
}
|
|
|
|
static timeEvent(eventName: string, appId: string) {
|
|
TDAnalytics.timeEvent(eventName, appId)
|
|
}
|
|
|
|
static calibrateTime(timestamp: number) {
|
|
TDAnalytics.calibrateTime(timestamp)
|
|
}
|
|
|
|
private static parseJsonStrict(jsonString: string): object {
|
|
try {
|
|
const parsed = JSON.parse(jsonString);
|
|
if (typeof parsed !== 'object' || parsed === null) {
|
|
return {};
|
|
}
|
|
return parsed;
|
|
} catch (error) {
|
|
return {};
|
|
}
|
|
}
|
|
|
|
} |