diff --git a/README.md b/README.md
index b9604dd..d22e41b 100644
--- a/README.md
+++ b/README.md
@@ -25,6 +25,7 @@
- [@nstudio/nativescript-persona](packages/nativescript-persona/README.md)
- [@nstudio/nativescript-plaid](packages/nativescript-plaid/README.md)
- [@nstudio/nativescript-qr](packages/nativescript-qr/README.md)
+- [@nstudio/nativescript-tiktok](packages/nativescript-tiktok/README.md)
- [@nstudio/nativescript-tracking-transparency](packages/nativescript-tracking-transparency/README.md)
- [@nstudio/nativescript-walletconnect](packages/nativescript-walletconnect/README.md)
- [@nstudio/nativescript-web-server](packages/nativescript-web-server/README.md)
diff --git a/apps/demo-angular/package.json b/apps/demo-angular/package.json
index cf0399d..0b70049 100644
--- a/apps/demo-angular/package.json
+++ b/apps/demo-angular/package.json
@@ -31,7 +31,8 @@
"@nstudio/nativescript-tracking-transparency": "file:../../dist/packages/nativescript-tracking-transparency",
"@nstudio/nativescript-walletconnect": "file:../../dist/packages/nativescript-walletconnect",
"@nstudio/nativescript-web-server": "file:../../dist/packages/nativescript-web-server",
- "@nstudio/nativescript-branch": "file:../../dist/packages/nativescript-branch"
+ "@nstudio/nativescript-branch": "file:../../dist/packages/nativescript-branch",
+ "@nstudio/nativescript-tiktok": "file:../../dist/packages/nativescript-tiktok"
},
"devDependencies": {
"@nativescript/android": "~8.9.0",
diff --git a/apps/demo-angular/src/app-routing.module.ts b/apps/demo-angular/src/app-routing.module.ts
index 2cfb346..d504736 100644
--- a/apps/demo-angular/src/app-routing.module.ts
+++ b/apps/demo-angular/src/app-routing.module.ts
@@ -33,6 +33,7 @@ const routes: Routes = [
{ path: 'nativescript-persona', loadChildren: () => import('./plugin-demos/nativescript-persona.module').then((m) => m.NativescriptPersonaModule) },
{ path: 'nativescript-plaid', loadChildren: () => import('./plugin-demos/nativescript-plaid.module').then((m) => m.NativescriptPlaidModule) },
{ path: 'nativescript-qr', loadChildren: () => import('./plugin-demos/nativescript-qr.module').then((m) => m.NativescriptQrModule) },
+ { path: 'nativescript-tiktok', loadChildren: () => import('./plugin-demos/nativescript-tiktok.module').then((m) => m.NativescriptTiktokModule) },
{ path: 'nativescript-tracking-transparency', loadChildren: () => import('./plugin-demos/nativescript-tracking-transparency.module').then((m) => m.NativescriptTrackingTransparencyModule) },
{ path: 'nativescript-walletconnect', loadChildren: () => import('./plugin-demos/nativescript-walletconnect.module').then((m) => m.NativescriptWalletconnectModule) },
{ path: 'nativescript-web-server', loadChildren: () => import('./plugin-demos/nativescript-web-server.module').then((m) => m.NativescriptWebServerModule) },
diff --git a/apps/demo-angular/src/home.component.ts b/apps/demo-angular/src/home.component.ts
index 3c465c2..c0e9537 100644
--- a/apps/demo-angular/src/home.component.ts
+++ b/apps/demo-angular/src/home.component.ts
@@ -87,6 +87,9 @@ export class HomeComponent {
{
name: 'nativescript-qr',
},
+ {
+ name: 'nativescript-tiktok',
+ },
{
name: 'nativescript-tracking-transparency',
},
diff --git a/apps/demo-angular/src/plugin-demos/nativescript-tiktok.component.html b/apps/demo-angular/src/plugin-demos/nativescript-tiktok.component.html
new file mode 100644
index 0000000..ddbb6c9
--- /dev/null
+++ b/apps/demo-angular/src/plugin-demos/nativescript-tiktok.component.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/apps/demo-angular/src/plugin-demos/nativescript-tiktok.component.ts b/apps/demo-angular/src/plugin-demos/nativescript-tiktok.component.ts
new file mode 100644
index 0000000..4b333d7
--- /dev/null
+++ b/apps/demo-angular/src/plugin-demos/nativescript-tiktok.component.ts
@@ -0,0 +1,17 @@
+import { Component, NgZone } from '@angular/core';
+import { DemoSharedNativescriptTiktok } from '@demo/shared';
+import {} from '@nstudio/nativescript-tiktok';
+
+@Component({
+ selector: 'demo-nativescript-tiktok',
+ templateUrl: 'nativescript-tiktok.component.html',
+})
+export class NativescriptTiktokComponent {
+ demoShared: DemoSharedNativescriptTiktok;
+
+ constructor(private _ngZone: NgZone) {}
+
+ ngOnInit() {
+ this.demoShared = new DemoSharedNativescriptTiktok();
+ }
+}
diff --git a/apps/demo-angular/src/plugin-demos/nativescript-tiktok.module.ts b/apps/demo-angular/src/plugin-demos/nativescript-tiktok.module.ts
new file mode 100644
index 0000000..7dee496
--- /dev/null
+++ b/apps/demo-angular/src/plugin-demos/nativescript-tiktok.module.ts
@@ -0,0 +1,10 @@
+import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
+import { NativeScriptCommonModule, NativeScriptRouterModule } from '@nativescript/angular';
+import { NativescriptTiktokComponent } from './nativescript-tiktok.component';
+
+@NgModule({
+ imports: [NativeScriptCommonModule, NativeScriptRouterModule.forChild([{ path: '', component: NativescriptTiktokComponent }])],
+ declarations: [NativescriptTiktokComponent],
+ schemas: [NO_ERRORS_SCHEMA],
+})
+export class NativescriptTiktokModule {}
diff --git a/apps/demo-angular/tsconfig.json b/apps/demo-angular/tsconfig.json
index 1fcca7c..f90d9dc 100644
--- a/apps/demo-angular/tsconfig.json
+++ b/apps/demo-angular/tsconfig.json
@@ -36,7 +36,8 @@
"@nstudio/nativescript-walletconnect": ["../../packages/nativescript-walletconnect/index.d.ts"],
"@nstudio/nativescript-web-server": ["../../packages/nativescript-web-server/index.d.ts"],
"@nstudio/nativescript-branch": ["../../packages/nativescript-branch/index.d.ts"],
- "@nstudio/nativescript-auth0": ["../../packages/nativescript-auth0/index.d.ts"]
+ "@nstudio/nativescript-auth0": ["../../packages/nativescript-auth0/index.d.ts"],
+ "@nstudio/nativescript-tiktok": ["../../packages/nativescript-tiktok/index.d.ts"]
}
},
"files": ["./references.d.ts", "./src/main.ts", "./src/polyfills.ts"],
diff --git a/apps/demo/package.json b/apps/demo/package.json
index baa07aa..b16ee88 100644
--- a/apps/demo/package.json
+++ b/apps/demo/package.json
@@ -32,7 +32,8 @@
"@nstudio/nativescript-tracking-transparency": "file:../../packages/nativescript-tracking-transparency",
"@nstudio/nativescript-walletconnect": "file:../../packages/nativescript-walletconnect",
"@nstudio/nativescript-web-server": "file:../../packages/nativescript-web-server",
- "@nstudio/nativescript-branch": "file:../../packages/nativescript-branch"
+ "@nstudio/nativescript-branch": "file:../../packages/nativescript-branch",
+ "@nstudio/nativescript-tiktok": "file:../../packages/nativescript-tiktok"
},
"devDependencies": {
"@nativescript/android": "~9.0.0",
diff --git a/apps/demo/src/main-page.xml b/apps/demo/src/main-page.xml
index 8ee4ede..f863cc5 100644
--- a/apps/demo/src/main-page.xml
+++ b/apps/demo/src/main-page.xml
@@ -35,6 +35,7 @@
+
diff --git a/apps/demo/src/plugin-demos/nativescript-tiktok.ts b/apps/demo/src/plugin-demos/nativescript-tiktok.ts
new file mode 100644
index 0000000..fc77385
--- /dev/null
+++ b/apps/demo/src/plugin-demos/nativescript-tiktok.ts
@@ -0,0 +1,10 @@
+import { Observable, EventData, Page } from '@nativescript/core';
+import { DemoSharedNativescriptTiktok } from '@demo/shared';
+import {} from '@nstudio/nativescript-tiktok';
+
+export function navigatingTo(args: EventData) {
+ const page = args.object;
+ page.bindingContext = new DemoModel();
+}
+
+export class DemoModel extends DemoSharedNativescriptTiktok {}
diff --git a/apps/demo/src/plugin-demos/nativescript-tiktok.xml b/apps/demo/src/plugin-demos/nativescript-tiktok.xml
new file mode 100644
index 0000000..2f430ab
--- /dev/null
+++ b/apps/demo/src/plugin-demos/nativescript-tiktok.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/demo/tsconfig.json b/apps/demo/tsconfig.json
index f7c81c6..f89e7c0 100644
--- a/apps/demo/tsconfig.json
+++ b/apps/demo/tsconfig.json
@@ -38,7 +38,8 @@
"@nstudio/nativescript-walletconnect": ["../../packages/nativescript-walletconnect/index.d.ts"],
"@nstudio/nativescript-web-server": ["../../packages/nativescript-web-server/index.d.ts"],
"@nstudio/nativescript-branch": ["../../packages/nativescript-branch/index.d.ts"],
- "@nstudio/nativescript-auth0": ["../../packages/nativescript-auth0/index.d.ts"]
+ "@nstudio/nativescript-auth0": ["../../packages/nativescript-auth0/index.d.ts"],
+ "@nstudio/nativescript-tiktok": ["../../packages/nativescript-tiktok/index.d.ts"]
}
}
}
diff --git a/packages/nativescript-tiktok/.eslintrc.json b/packages/nativescript-tiktok/.eslintrc.json
new file mode 100644
index 0000000..be41074
--- /dev/null
+++ b/packages/nativescript-tiktok/.eslintrc.json
@@ -0,0 +1,18 @@
+{
+ "extends": ["../../.eslintrc.json"],
+ "ignorePatterns": ["!**/*", "node_modules/**/*"],
+ "overrides": [
+ {
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.ts", "*.tsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.js", "*.jsx"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/packages/nativescript-tiktok/README.md b/packages/nativescript-tiktok/README.md
new file mode 100644
index 0000000..8ded1f7
--- /dev/null
+++ b/packages/nativescript-tiktok/README.md
@@ -0,0 +1,13 @@
+# @nstudio/nativescript-tiktok
+
+```javascript
+npm install @nstudio/nativescript-tiktok
+```
+
+## Usage
+
+// TODO
+
+## License
+
+Apache License Version 2.0
diff --git a/packages/nativescript-tiktok/index.android.ts b/packages/nativescript-tiktok/index.android.ts
new file mode 100644
index 0000000..5f14be2
--- /dev/null
+++ b/packages/nativescript-tiktok/index.android.ts
@@ -0,0 +1,386 @@
+import { Utils } from '@nativescript/core';
+import { Events, LogLevel, StandardEvent } from '.';
+const native_ = Symbol('[[native]]');
+
+function numberHasDecimals(value) {
+ return !(value % 1 === 0);
+}
+function numberIs64Bit(value) {
+ return value < -Math.pow(2, 31) + 1 || value > Math.pow(2, 31) - 1;
+}
+
+function dataSerialize(data, wrapPrimitives) {
+ let store;
+ switch (typeof data) {
+ case 'string':
+ case 'boolean': {
+ if (wrapPrimitives) {
+ if (typeof data === 'string') {
+ return new java.lang.String(data);
+ }
+ return new java.lang.Boolean(data);
+ }
+ return data;
+ }
+ case 'number': {
+ const hasDecimals = numberHasDecimals(data);
+ if (numberIs64Bit(data)) {
+ if (hasDecimals) {
+ return java.lang.Double.valueOf(data);
+ } else {
+ return java.lang.Long.valueOf(data);
+ }
+ } else {
+ if (hasDecimals) {
+ return java.lang.Float.valueOf(data);
+ } else {
+ return java.lang.Integer.valueOf(data);
+ }
+ }
+ }
+ case 'object': {
+ if (!data) {
+ return null;
+ }
+ if (data instanceof Date) {
+ return new java.util.Date(data.getTime());
+ }
+ if (Array.isArray(data)) {
+ store = new org.json.JSONArray();
+ data.forEach((item) => store.put(dataSerialize(item, wrapPrimitives)));
+ return store;
+ }
+ if (data.native) {
+ return data.native;
+ }
+ store = new org.json.JSONObject();
+ Object.keys(data).forEach((key) => store.put(key, dataSerialize(data[key], wrapPrimitives)));
+ return store;
+ }
+ default:
+ return null;
+ }
+}
+
+export class Config {
+ private _config: {
+ paymentTracking?: boolean;
+ debugMode?: boolean;
+ autoTracking?: boolean;
+ launchTracking?: boolean;
+ retentionTracking?: boolean;
+ installTracking?: boolean;
+ accessToken: string;
+ appId: string;
+ tiktokAppId: string | string[];
+ flushTimeInterval?: number;
+ logLevel?: LogLevel;
+ isLowPerformanceDevice?: boolean;
+ };
+
+ constructor(accessToken: string, appId: string, tiktokAppId: string | string[]) {
+ let ids = '';
+ if (Array.isArray(tiktokAppId)) {
+ ids = tiktokAppId.join(',');
+ } else {
+ ids = tiktokAppId;
+ }
+ this[native_] = new com.tiktok.TikTokBusinessSdk.TTConfig(Utils.android.getApplicationContext(), accessToken).setAppId(appId).setTTAppId(ids);
+ this._config = {
+ accessToken,
+ appId,
+ tiktokAppId,
+ };
+ }
+ get native() {
+ let ids = '';
+ if (Array.isArray(this._config.tiktokAppId)) {
+ ids = this._config.tiktokAppId.join(',');
+ } else {
+ ids = this._config.tiktokAppId;
+ }
+
+ let ret = new com.tiktok.TikTokBusinessSdk.TTConfig(Utils.android.getApplicationContext(), this._config.accessToken).setAppId(this._config.appId).setTTAppId(ids);
+
+ if (this._config.debugMode) {
+ ret = ret.openDebugMode();
+ }
+
+ if ('isLowPerformanceDevice' in this._config) {
+ if (this._config.isLowPerformanceDevice) {
+ ret.setIsLowPerformanceDevice(true);
+ } else {
+ ret.setIsLowPerformanceDevice(false);
+ }
+ }
+
+ if ('paymentTracking' in this._config) {
+ if (this._config.paymentTracking) {
+ ret.enableAutoIapTrack();
+ } else {
+ ret.disableAutoIapTrack();
+ }
+ }
+
+ if ('autoTracking' in this._config) {
+ if (!this._config.autoTracking) {
+ ret.disableAutoEvents();
+ }
+ }
+
+ if ('launchTracking' in this._config) {
+ if (!this._config.launchTracking) {
+ ret.disableLaunchLogging();
+ }
+ }
+
+ if ('retentionTracking' in this._config) {
+ if (!this._config.retentionTracking) {
+ ret.disableRetentionLogging();
+ }
+ }
+
+ if ('installTracking' in this._config) {
+ if (!this._config.installTracking) {
+ ret.disableInstallLogging();
+ }
+ }
+
+ if ('flushTimeInterval' in this._config) {
+ ret.setFlushTimeInterval(this._config.flushTimeInterval);
+ }
+
+ if ('logLevel' in this._config) {
+ switch (this._config.logLevel) {
+ case LogLevel.None:
+ ret.setLogLevel(com.tiktok.TikTokBusinessSdk.LogLevel.NONE);
+ break;
+ case LogLevel.Warning:
+ ret.setLogLevel(com.tiktok.TikTokBusinessSdk.LogLevel.WARN);
+ break;
+ case LogLevel.Info:
+ ret.setLogLevel(com.tiktok.TikTokBusinessSdk.LogLevel.INFO);
+ break;
+ case LogLevel.Debug:
+ ret.setLogLevel(com.tiktok.TikTokBusinessSdk.LogLevel.DEBUG);
+ break;
+ }
+ }
+ return ret;
+ }
+
+ get paymentTracking(): boolean {
+ return this._config.paymentTracking ?? true;
+ }
+
+ set paymentTrackingEnabled(enabled: boolean) {
+ this._config.paymentTracking = enabled;
+ }
+
+ get debugMode(): boolean {
+ return this._config.debugMode ?? false;
+ }
+
+ set debugMode(enabled: boolean) {
+ this._config.debugMode = enabled;
+ }
+
+ setFlushTimeInterval(seconds: number): this {
+ this._config.flushTimeInterval = seconds;
+ return this;
+ }
+
+ set autoTracking(value: boolean) {
+ this._config.autoTracking = value;
+ }
+
+ get autoTracking(): boolean {
+ return this._config.autoTracking ?? true;
+ }
+
+ set launchTracking(value: boolean) {
+ this._config.launchTracking = value;
+ }
+
+ get launchTracking(): boolean {
+ return this._config.launchTracking ?? true;
+ }
+
+ set retentionTracking(value: boolean) {
+ this._config.retentionTracking = value;
+ }
+
+ get retentionTracking(): boolean {
+ return this._config.retentionTracking ?? true;
+ }
+
+ set installTracking(value: boolean) {
+ this._config.installTracking = value;
+ }
+
+ get installTracking(): boolean {
+ return this._config.installTracking ?? true;
+ }
+
+ get logLevel(): LogLevel {
+ return this._config.logLevel ?? LogLevel.None;
+ }
+
+ set logLevel(level: LogLevel) {
+ this._config.logLevel = level;
+ }
+}
+
+function toEventType(type: StandardEvent) {
+ switch (type) {
+ case StandardEvent.AchieveLevel:
+ return com.tiktok.appevents.base.EventName.ACHIEVE_LEVEL;
+ case StandardEvent.AddPaymentInfo:
+ return com.tiktok.appevents.base.EventName.ADD_PAYMENT_INFO;
+ case StandardEvent.AddToCart:
+ return null;
+ case StandardEvent.AddToWishlist:
+ return null;
+ case StandardEvent.AdRevenue:
+ return null;
+ case StandardEvent.Checkout:
+ return null;
+ case StandardEvent.CompleteTutorial:
+ return com.tiktok.appevents.base.EventName.COMPLETE_TUTORIAL;
+ case StandardEvent.CreateGroup:
+ return com.tiktok.appevents.base.EventName.CREATE_GROUP;
+ case StandardEvent.CreateRole:
+ return com.tiktok.appevents.base.EventName.CREATE_ROLE;
+ case StandardEvent.GenerateLead:
+ return com.tiktok.appevents.base.EventName.GENERATE_LEAD;
+ case StandardEvent.ImpressionLevelAdRevenue:
+ return com.tiktok.appevents.base.EventName.IMPRESSION_LEVEL_AD_REVENUE;
+ case StandardEvent.InAppADClick:
+ return com.tiktok.appevents.base.EventName.IN_APP_AD_CLICK;
+ case StandardEvent.InAppADImpr:
+ return com.tiktok.appevents.base.EventName.IN_APP_AD_IMPR;
+ case StandardEvent.InstallApp:
+ return com.tiktok.appevents.base.EventName.INSTALL_APP;
+ case StandardEvent.JoinGroup:
+ return com.tiktok.appevents.base.EventName.JOIN_GROUP;
+ case StandardEvent.LaunchAPP:
+ return com.tiktok.appevents.base.EventName.LAUNCH_APP;
+ case StandardEvent.Login:
+ return com.tiktok.appevents.base.EventName.LOGIN;
+ case StandardEvent.Purchase:
+ return null;
+ case StandardEvent.Rate:
+ return com.tiktok.appevents.base.EventName.RATE;
+ case StandardEvent.Registration:
+ return com.tiktok.appevents.base.EventName.REGISTRATION;
+ case StandardEvent.Search:
+ return com.tiktok.appevents.base.EventName.SEARCH;
+ case StandardEvent.SpendCredits:
+ return com.tiktok.appevents.base.EventName.SPEND_CREDITS;
+ case StandardEvent.StartTrial:
+ return com.tiktok.appevents.base.EventName.START_TRIAL;
+ case StandardEvent.Subscribe:
+ return com.tiktok.appevents.base.EventName.SUBSCRIBE;
+ case StandardEvent.UnlockAchievement:
+ return com.tiktok.appevents.base.EventName.UNLOCK_ACHIEVEMENT;
+ case StandardEvent.ViewContent:
+ return null;
+ }
+}
+export class BusinessSdk {
+ static initialize(config: Config): Promise {
+ return new Promise((resolve, reject) => {
+ const autoTracking = config.autoTracking ?? true;
+ com.tiktok.TikTokBusinessSdk.initializeSdk(
+ config.native,
+ new com.tiktok.TikTokBusinessSdk.TTInitCallback({
+ success() {
+ if (autoTracking) {
+ com.tiktok.TikTokBusinessSdk.startTrack();
+ }
+ resolve(new BusinessSdk());
+ },
+ fail(errorCode, errorMessage) {
+ reject(new Error(`Initialization failed: ${errorCode} - ${errorMessage}`));
+ },
+ }),
+ );
+ });
+ }
+
+ static identify(externalId: string, externalUserName: string, email: string, phoneNumber: string): void {
+ com.tiktok.TikTokBusinessSdk.identify(externalId, externalUserName, email, phoneNumber);
+ }
+
+ static logout() {
+ com.tiktok.TikTokBusinessSdk.logout();
+ }
+
+ static flush() {
+ com.tiktok.TikTokBusinessSdk.flush();
+ }
+
+ static fetchDeferredDeepLinkData(): Promise {
+ return new Promise((resolve, reject) => {
+ com.tiktok.TikTokBusinessSdk.fetchDeferredDeeplinkWithCompletion(
+ new com.tiktok.TikTokBusinessSdk.FetchDeferredDeeplinkCompletion({
+ completion(deepLinkUrl, error) {
+ if (error) {
+ reject(new Error(`Failed to fetch deferred deep link data: ${error.getCode()} - ${error.getMsg()} `));
+ } else {
+ resolve(deepLinkUrl);
+ }
+ },
+ }),
+ );
+ });
+ }
+
+ static trackEvent(options: { eventName: string; eventId?: string; event?: Events }): void {
+ if (options.event) {
+ let params: com.tiktok.appevents.base.TTBaseEvent;
+ switch (options.event.type) {
+ case 'addToCart':
+ params = new com.tiktok.appevents.contents.TTAddToCartEvent(options.eventName, dataSerialize(options.event, true), options.eventId ?? '');
+ break;
+ case 'adRevenue':
+ case 'impressionLevelAdRevenue':
+ params = new com.tiktok.appevents.base.TTAdRevenueEvent(options.eventName, dataSerialize(options.event, true), options.eventId ?? '');
+ break;
+ case 'addToWishlist':
+ params = new com.tiktok.appevents.contents.TTAddToWishlistEvent(options.eventName, dataSerialize(options.event, true), options.eventId ?? '');
+ break;
+ case 'checkout':
+ params = new com.tiktok.appevents.contents.TTCheckoutEvent(options.eventName, dataSerialize(options.event, true), options.eventId ?? '');
+ break;
+ case 'purchase':
+ params = new com.tiktok.appevents.contents.TTPurchaseEvent(options.eventName, dataSerialize(options.event, true), options.eventId ?? '');
+ break;
+ case 'viewContent':
+ params = new com.tiktok.appevents.contents.TTViewContentEvent(options.eventName, dataSerialize(options.event, true), options.eventId ?? '');
+ break;
+ default:
+ params = new com.tiktok.appevents.base.TTBaseEvent(options.eventName, dataSerialize(options.event, true), options.eventId ?? '');
+ }
+
+ if (options.event) {
+ for (const key in options.event) {
+ if (key === 'type') {
+ continue;
+ }
+ const data = options.event[key];
+ const value = Utils.dataSerialize(data);
+ params.properties.put(key, value);
+ }
+
+ com.tiktok.TikTokBusinessSdk.trackTTEvent(params);
+ } else if (options.eventId) {
+ const eventType = toEventType(options.event?.type as StandardEvent) ?? options.eventName;
+ com.tiktok.TikTokBusinessSdk.trackTTEvent(eventType, options.eventId);
+ } else {
+ const eventType = toEventType(options.event?.type as StandardEvent) ?? options.eventName;
+ com.tiktok.TikTokBusinessSdk.trackTTEvent(eventType);
+ }
+ }
+ }
+}
diff --git a/packages/nativescript-tiktok/index.d.ts b/packages/nativescript-tiktok/index.d.ts
new file mode 100644
index 0000000..f6bbc3e
--- /dev/null
+++ b/packages/nativescript-tiktok/index.d.ts
@@ -0,0 +1,167 @@
+export enum LogLevel {
+ None = 0,
+ Info = 1,
+ Warning = 2,
+ Debug = 3,
+}
+
+export const enum StandardEvent {
+ AchieveLevel = 'achieveLevel',
+ AddPaymentInfo = 'addPaymentInfo',
+ AddToCart = 'addToCart',
+ AddToWishlist = 'addToWishlist',
+ AdRevenue = 'adRevenue',
+ Checkout = 'checkout',
+ CompleteTutorial = 'completeTutorial',
+ CreateGroup = 'createGroup',
+ CreateRole = 'createRole',
+ GenerateLead = 'generateLead',
+ ImpressionLevelAdRevenue = 'impressionLevelAdRevenue',
+ InAppADClick = 'inAppADClick',
+ InAppADImpr = 'inAppADImpr',
+ InstallApp = 'installApp',
+ JoinGroup = 'joinGroup',
+ LaunchAPP = 'launchAPP',
+ Login = 'login',
+ Purchase = 'purchase',
+ Rate = 'rate',
+ Registration = 'registration',
+ Search = 'search',
+ SpendCredits = 'spendCredits',
+ StartTrial = 'startTrial',
+ Subscribe = 'subscribe',
+ UnlockAchievement = 'unlockAchievement',
+ ViewContent = 'viewContent',
+}
+
+type BasicEvent = Omit;
+
+export interface IEvent {
+ type: BasicEvent | `${BasicEvent}`;
+ [key: string]: unknown;
+}
+
+interface ContentEvent extends IEvent {
+ content_type: string;
+ content_id: string;
+ description: string;
+ currency: string;
+ value: string;
+}
+
+export interface AddToCartEvent extends ContentEvent {
+ type: StandardEvent.AddToCart | `${StandardEvent.AddToCart}`;
+}
+
+export interface AddToWishlistEvent extends ContentEvent {
+ type: StandardEvent.AddToWishlist | `${StandardEvent.AddToWishlist}`;
+}
+
+export interface CheckoutEvent extends ContentEvent {
+ type: StandardEvent.Checkout | `${StandardEvent.Checkout}`;
+}
+
+export interface PurchaseEvent extends ContentEvent {
+ type: StandardEvent.Purchase | `${StandardEvent.Purchase}`;
+}
+
+export interface ViewContentEvent extends ContentEvent {
+ type: StandardEvent.ViewContent | `${StandardEvent.ViewContent}`;
+}
+
+export interface IImpressionLevelAdRevenueEvent extends IEvent {
+ type: StandardEvent.ImpressionLevelAdRevenue | `${StandardEvent.ImpressionLevelAdRevenue}`;
+ revenue: string;
+ placement: string;
+ device_ad_mediation_platform: 'applovin_max_sdk' | 'ironsource_sdk' | 'admob_sdk';
+}
+
+export interface MaxImpressionLevelAdRevenueEvent extends IImpressionLevelAdRevenueEvent {
+ revenue: string;
+ network_name: string;
+ ad_unit_id: string;
+ ad_format: string;
+ placement: string;
+ network_placement: string;
+ device_ad_mediation_platform: 'applovin_max_sdk';
+}
+
+export interface IronSourceImpressionLevelAdRevenueEvent extends IImpressionLevelAdRevenueEvent {
+ auction_id: string;
+ ad_unit: string;
+ instance_name: string;
+ instance_id: string;
+ country: string;
+ ab: string;
+ segment_name: string;
+ lifetime_revenue: string;
+ encrypted_cpm: string;
+ device_ad_mediation_platform: 'ironsource_sdk';
+}
+
+export interface AdMobImpressionLevelAdRevenueEvent extends IImpressionLevelAdRevenueEvent {
+ value: string;
+ currency_code: string;
+ precision: string;
+ ad_unit_id: string;
+ ad_source_name: string;
+ ad_source_id: string;
+ ad_source_instance_name: string;
+ ad_source_instance_id: string;
+ mediation_group_name: string;
+ mediation_ab_test_name: string;
+ mediation_ab_test_variant: string;
+ ad_format: 'banner' | 'interstitial' | 'rewarded' | 'rewarded interstitial' | 'native' | 'splash';
+ device_ad_mediation_platform: 'admob_sdk';
+}
+
+export type ImpressionLevelAdRevenueEventMap = {
+ applovin_max_sdk: MaxImpressionLevelAdRevenueEvent;
+ ironsource_sdk: IronSourceImpressionLevelAdRevenueEvent;
+ admob_sdk: AdMobImpressionLevelAdRevenueEvent;
+};
+
+export type DistributeImpressionEvents = {
+ [K in T]: ImpressionLevelAdRevenueEventMap[K];
+}[T];
+
+export type Events = IEvent | AddToCartEvent | AddToWishlistEvent | CheckoutEvent | PurchaseEvent | ViewContentEvent | DistributeImpressionEvents;
+
+export class Config {
+ constructor(accessToken: string, appId: string, tiktokAppId: string | string[]);
+
+ paymentTracking: boolean;
+
+ debugMode: boolean;
+
+ setFlushTimeInterval(seconds: number): this;
+
+ autoTracking: boolean;
+
+ launchTracking: boolean;
+
+ disableAutoEnhancedDataPostbackEvent(): this;
+
+ retentionTracking: boolean;
+
+ installTracking: boolean;
+
+ setIsLowPerformanceDevice(isLowPerformanceDevice: boolean): this;
+
+ setLogLevel(level: LogLevel): this;
+}
+export class BusinessSdk {
+ static initialize(config: Config): Promise;
+
+ static startTrack(): void;
+
+ static identify(externalId: string, externalUserName: string, email: string, phoneNumber: string): void;
+
+ static logout(): void;
+
+ static flush(): void;
+
+ static fetchDeferredDeepLinkData(): Promise;
+
+ static trackEvent(options: { eventName: string; eventId?: string; event?: Events }): void;
+}
diff --git a/packages/nativescript-tiktok/index.ios.ts b/packages/nativescript-tiktok/index.ios.ts
new file mode 100644
index 0000000..7c4722e
--- /dev/null
+++ b/packages/nativescript-tiktok/index.ios.ts
@@ -0,0 +1,230 @@
+import { Utils } from '@nativescript/core';
+import { LogLevel, Events } from '.';
+const native_ = Symbol('[[native]]');
+export class Config {
+ [native_]: TikTokConfig;
+ constructor(accessToken: string, appId: string, tiktokAppId: string | string[]) {
+ let ids = '';
+ if (Array.isArray(tiktokAppId)) {
+ ids = tiktokAppId.join(',');
+ } else {
+ ids = tiktokAppId;
+ }
+ this[native_] = TikTokConfig.configWithAccessTokenAppIdTiktokAppId(accessToken, appId, ids);
+ }
+ get native() {
+ return this[native_];
+ }
+
+ get paymentTracking(): boolean {
+ return this.native.paymentTrackingStatus == TikTokPaymentTrackStatus.enabled;
+ }
+
+ set paymentTrackingEnabled(enabled: boolean) {
+ this.native.paymentTrackingStatus = enabled ? TikTokPaymentTrackStatus.enabled : TikTokPaymentTrackStatus.disabled;
+ }
+
+ get debugMode(): boolean {
+ return this.native.debugModeEnabled;
+ }
+
+ set debugMode(enabled: boolean) {
+ this.native.debugModeEnabled = enabled;
+ }
+
+ setFlushTimeInterval(seconds: number): this {
+ this.native.initialFlushDelay = seconds;
+ return this;
+ }
+
+ set autoTracking(value: boolean) {
+ this.native.automaticTrackingEnabled = value;
+ }
+
+ get autoTracking(): boolean {
+ return this.native.automaticTrackingEnabled;
+ }
+
+ set launchTracking(value: boolean) {
+ this.native.launchTrackingEnabled = value;
+ }
+
+ get launchTracking(): boolean {
+ return this.native.launchTrackingEnabled;
+ }
+
+ disableAutoEnhancedDataPostbackEvent(): this {
+ this.native.disableAutoEnhancedDataPostbackEvent();
+ return this;
+ }
+
+ set retentionTracking(value: boolean) {
+ this.native.retentionTrackingEnabled = value;
+ }
+
+ get retentionTracking(): boolean {
+ return this.native.retentionTrackingEnabled;
+ }
+
+ set installTracking(value: boolean) {
+ this.native.installTrackingEnabled = value;
+ }
+
+ get installTracking(): boolean {
+ return this.native.installTrackingEnabled;
+ }
+
+ setIsLowPerformanceDevice(isLowPerformanceDevice: boolean): this {
+ this.native.setIsLowPerformanceDevice(isLowPerformanceDevice);
+ return this;
+ }
+
+ disableAdvertiserIDCollection(): this {
+ this.native.disableSKAdNetworkSupport();
+ return this;
+ }
+
+ setLogLevel(level: LogLevel): this {
+ switch (level) {
+ case LogLevel.None:
+ this.native.setLogLevel(TikTokLogLevel.Suppress);
+ break;
+ case LogLevel.Info:
+ this.native.setLogLevel(TikTokLogLevel.Info);
+ break;
+ case LogLevel.Warning:
+ this.native.setLogLevel(TikTokLogLevel.Warn);
+ break;
+ case LogLevel.Debug:
+ this.native.setLogLevel(TikTokLogLevel.Debug);
+ break;
+ }
+ return this;
+ }
+}
+export class BusinessSdk {
+ static initialize(config: Config): Promise {
+ return new Promise((resolve, reject) => {
+ TikTokBusiness.initializeSdkCompletionHandler(config.native, (success, error) => {
+ if (success) {
+ resolve(new BusinessSdk());
+ } else {
+ reject(new Error(`Initialization failed: ${error.code} - ${error.localizedDescription}`));
+ }
+ });
+ });
+ }
+
+ static startTrack(): void {
+ TikTokBusiness.setTrackingEnabled(true);
+ }
+
+ static identify(externalId: string, externalUserName: string, email: string, phoneNumber: string): void {
+ TikTokBusiness.identifyWithExternalIDExternalUserNamePhoneNumberEmail(externalId, externalUserName, phoneNumber, email);
+ }
+
+ static logout() {
+ TikTokBusiness.logout();
+ }
+
+ static flush() {
+ TikTokBusiness.explicitlyFlush();
+ }
+
+ static fetchDeferredDeepLinkData(): Promise {
+ return new Promise((resolve, reject) => {
+ TikTokBusiness.fetchDeferredDeeplinkWithCompletion((deepLinkUrl, error) => {
+ if (error) {
+ reject(new Error(`Failed to fetch deferred deep link data: ${error.code} - ${error.localizedDescription} `));
+ } else {
+ resolve(deepLinkUrl.absoluteString);
+ }
+ });
+ });
+ }
+
+ static trackEvent(options: { eventName: string; eventId?: string; event?: Events }): void {
+ if (options) {
+ let params: TikTokBaseEvent;
+ const type: string = options.event?.type as never;
+ const eventName = options.eventName;
+ const eventId = options.eventId;
+ switch (type) {
+ case 'addToCart':
+ if (eventId) {
+ params = TikTokAddToCartEvent.alloc().initWithEventNameEventId(eventName, eventId);
+ } else {
+ params = TikTokAddToCartEvent.alloc().initWithEventName(eventName);
+ }
+ break;
+ case 'adRevenue':
+ case 'impressionLevelAdRevenue':
+ if (eventId) {
+ params = TikTokAdRevenueEvent.alloc().initWithEventNameEventId(eventName, eventId);
+ } else {
+ params = TikTokAdRevenueEvent.alloc().initWithEventName(eventName);
+ }
+ break;
+ case 'addToWishlist':
+ if (eventId) {
+ params = TikTokAddToWishlistEvent.alloc().initWithEventNameEventId(eventName, eventId);
+ } else {
+ params = TikTokAddToWishlistEvent.alloc().initWithEventName(eventName);
+ }
+ break;
+ case 'checkout':
+ if (eventId) {
+ params = TikTokCheckoutEvent.alloc().initWithEventNameEventId(eventName, eventId);
+ } else {
+ params = TikTokCheckoutEvent.alloc().initWithEventName(eventName);
+ }
+ break;
+ case 'purchase':
+ if (eventId) {
+ params = TikTokPurchaseEvent.alloc().initWithEventNameEventId(eventName, eventId);
+ } else {
+ params = TikTokPurchaseEvent.alloc().initWithEventName(eventName);
+ }
+ break;
+ case 'viewContent':
+ if (eventId) {
+ params = TikTokViewContentEvent.alloc().initWithEventNameEventId(eventName, eventId);
+ } else {
+ params = TikTokViewContentEvent.alloc().initWithEventName(eventName);
+ }
+ break;
+ default:
+ if (eventId) {
+ params = TikTokBaseEvent.alloc().initWithEventNameEventId(eventName, eventId);
+ } else {
+ params = TikTokBaseEvent.alloc().initWithEventName(eventName);
+ }
+ break;
+ }
+
+ if (options.event) {
+ for (const key in options.event) {
+ if (key === 'type') {
+ continue;
+ }
+ const data = options.event[key];
+ const value = Utils.dataSerialize(data);
+ if (value === undefined) {
+ continue;
+ }
+ if (key === undefined) {
+ params.setValueForUndefinedKey(value, key);
+ } else {
+ params.setValueForKey(value, key);
+ }
+ }
+
+ TikTokBusiness.trackTTEvent(params);
+ } else if (eventId) {
+ TikTokBusiness.trackEventWithId(eventName, eventId);
+ } else {
+ TikTokBusiness.trackEvent(eventName);
+ }
+ }
+ }
+}
diff --git a/packages/nativescript-tiktok/nativescript.config.ts b/packages/nativescript-tiktok/nativescript.config.ts
new file mode 100644
index 0000000..ef77213
--- /dev/null
+++ b/packages/nativescript-tiktok/nativescript.config.ts
@@ -0,0 +1,14 @@
+import { NativeScriptConfig } from '@nativescript/core';
+
+export default {
+ ios: {
+ SPMPackages: [
+ {
+ name: 'TikTokBusinessSDK',
+ libs: ['TikTokBusinessSDK'],
+ repositoryURL: 'https://github.com/tiktok/tiktok-business-ios-sdk',
+ version: '1.6.0',
+ },
+ ],
+ },
+} as NativeScriptConfig;
diff --git a/packages/nativescript-tiktok/package.json b/packages/nativescript-tiktok/package.json
new file mode 100644
index 0000000..ec2f9ad
--- /dev/null
+++ b/packages/nativescript-tiktok/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "@nstudio/nativescript-tiktok",
+ "version": "1.0.0",
+ "description": "Add a plugin description",
+ "main": "index",
+ "types": "index.d.ts",
+ "nativescript": {
+ "platforms": {
+ "ios": "6.0.0",
+ "android": "6.0.0"
+ }
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/nstudio/nativescript-plugins.git"
+ },
+ "keywords": [
+ "NativeScript",
+ "JavaScript",
+ "TypeScript",
+ "iOS",
+ "Android"
+ ],
+ "author": {
+ "name": "nStudio",
+ "email": "team@nstudio.io"
+ },
+ "bugs": {
+ "url": "https://github.com/nstudio/nativescript-plugins/issues"
+ },
+ "license": "Apache-2.0",
+ "homepage": "https://github.com/nstudio/nativescript-plugins",
+ "readmeFilename": "README.md",
+ "bootstrapper": "@nativescript/plugin-seed"
+}
diff --git a/packages/nativescript-tiktok/platforms/android/include.gradle b/packages/nativescript-tiktok/platforms/android/include.gradle
new file mode 100644
index 0000000..60e36d8
--- /dev/null
+++ b/packages/nativescript-tiktok/platforms/android/include.gradle
@@ -0,0 +1,8 @@
+repositories {
+ maven { url 'https://jitpack.io' }
+}
+
+dependencies {
+ implementation 'com.github.tiktok:tiktok-business-android-sdk:1.6.0'
+ implementation 'com.android.installreferrer:installreferrer:2.2'
+}
\ No newline at end of file
diff --git a/packages/nativescript-tiktok/project.json b/packages/nativescript-tiktok/project.json
new file mode 100644
index 0000000..95804c4
--- /dev/null
+++ b/packages/nativescript-tiktok/project.json
@@ -0,0 +1,66 @@
+{
+ "name": "nativescript-tiktok",
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
+ "projectType": "library",
+ "sourceRoot": "packages/nativescript-tiktok",
+ "targets": {
+ "build": {
+ "executor": "@nx/js:tsc",
+ "options": {
+ "outputPath": "dist/packages/nativescript-tiktok",
+ "tsConfig": "packages/nativescript-tiktok/tsconfig.json",
+ "packageJson": "packages/nativescript-tiktok/package.json",
+ "main": "packages/nativescript-tiktok/index.d.ts",
+ "assets": [
+ "packages/nativescript-tiktok/*.md",
+ "packages/nativescript-tiktok/index.d.ts",
+ "packages/nativescript-tiktok/nativescript.config.ts",
+ "LICENSE",
+ {
+ "glob": "**/*",
+ "input": "packages/nativescript-tiktok/platforms/",
+ "output": "./platforms/"
+ }
+ ],
+ "dependsOn": [
+ {
+ "target": "build.all",
+ "projects": "dependencies"
+ }
+ ]
+ }
+ },
+ "build.all": {
+ "executor": "nx:run-commands",
+ "options": {
+ "commands": ["node tools/scripts/build-finish.ts nativescript-tiktok"],
+ "parallel": false
+ },
+ "outputs": ["{workspaceRoot}/dist/packages/nativescript-tiktok"],
+ "dependsOn": [
+ {
+ "target": "build.all",
+ "projects": "dependencies"
+ },
+ {
+ "target": "build",
+ "projects": "self"
+ }
+ ]
+ },
+ "focus": {
+ "executor": "nx:run-commands",
+ "options": {
+ "commands": ["nx g @nativescript/plugin-tools:focus-packages nativescript-tiktok"],
+ "parallel": false
+ }
+ },
+ "lint": {
+ "executor": "@nx/eslint:eslint",
+ "options": {
+ "lintFilePatterns": ["packages/nativescript-tiktok/**/*.ts"]
+ }
+ }
+ },
+ "tags": []
+}
diff --git a/packages/nativescript-tiktok/references.d.ts b/packages/nativescript-tiktok/references.d.ts
new file mode 100644
index 0000000..22bac92
--- /dev/null
+++ b/packages/nativescript-tiktok/references.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/nativescript-tiktok/tsconfig.json b/packages/nativescript-tiktok/tsconfig.json
new file mode 100644
index 0000000..52cfe52
--- /dev/null
+++ b/packages/nativescript-tiktok/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc",
+ "rootDir": "."
+ },
+ "exclude": ["**/*.spec.ts", "**/*.test.ts", "angular"],
+ "include": ["**/*.ts", "references.d.ts"]
+}
diff --git a/packages/nativescript-tiktok/typings/android.d.ts b/packages/nativescript-tiktok/typings/android.d.ts
new file mode 100644
index 0000000..ab50aac
--- /dev/null
+++ b/packages/nativescript-tiktok/typings/android.d.ts
@@ -0,0 +1,1791 @@
+declare module com {
+ export module tiktok {
+ export class BuildConfig {
+ public static class: java.lang.Class;
+ public static DEBUG: boolean = 0;
+ public static LIBRARY_PACKAGE_NAME: string = 'com.tiktok';
+ public static BUILD_TYPE: string = 'release';
+ public static VERSION_NAME: string = '1.6.0';
+ public constructor();
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export class TikTokBusinessSdk {
+ public static class: java.lang.Class;
+ public static isActivatedLogicRun: boolean;
+ public static INVALID_ID: number = -2;
+ public static diskListener: com.tiktok.TikTokBusinessSdk.DiskStatusListener;
+ public static memoryListener: com.tiktok.TikTokBusinessSdk.MemoryListener;
+ public static networkListener: com.tiktok.TikTokBusinessSdk.NetworkListener;
+ public static nextTimeFlushListener: com.tiktok.TikTokBusinessSdk.NextTimeFlushListener;
+ public static getAccessToken(): string;
+ public static flush(): void;
+ public static trackGooglePlayPurchase(purchaseInfos: java.util.List): void;
+ public static onlyAppIdProvided(): boolean;
+ public static getTTAppId(): string;
+ /** @deprecated */
+ public static trackEvent(event: string, props: org.json.JSONObject): void;
+ public static isSystemActivated(): boolean;
+ public static getNetworkSwitch(): boolean;
+ public static logout(): void;
+ public static enableDebugMode(): void;
+ public static isInitialized(): boolean;
+ public static isEdpEnable(): boolean;
+ public static setSdkGlobalSwitch(sdkGlobalSwitch: java.lang.Boolean): void;
+ public static crashSDK(): void;
+ public static getFirstTTAppIds(): java.math.BigInteger;
+ public static enableAutoIapTrack(): boolean;
+ /** @deprecated */
+ public static trackEvent(event: string): void;
+ public static trackTTEvent(event: com.tiktok.appevents.base.TTBaseEvent): void;
+ public static setApiAvailableVersion(apiAvailableVersion: string): void;
+ public static identify(initTimeMS: string, isReset: string, endTimeMS: string, meta: string): void;
+ public static registerEDPLifecycleCallback(context: globalAndroid.app.Application): void;
+ public static getTTAppIds(): androidNative.Array;
+ public static getApplicationContext(): globalAndroid.app.Application;
+ public static getSessionID(): string;
+ public static getAppId(): string;
+ public static startTrack(): void;
+ public static getTestEventCode(): string;
+ public static isGlobalConfigFetched(): java.lang.Boolean;
+ public static initializeSdk(existingExHandler: com.tiktok.TikTokBusinessSdk.TTConfig, endTimeMS: com.tiktok.TikTokBusinessSdk.TTInitCallback): void;
+ public static trackGooglePlayPurchase(info: com.tiktok.appevents.TTPurchaseInfo): void;
+ public static clearAll(): void;
+ public static initializeSdk(ttConfig: com.tiktok.TikTokBusinessSdk.TTConfig): void;
+ public static trackTTEvent(event: com.tiktok.appevents.base.EventName): void;
+ public static getApiTrackDomain(): string;
+ public static updateAccessToken(accessToken: string): void;
+ public static getLogLevel(): com.tiktok.TikTokBusinessSdk.LogLevel;
+ public static setUpSdkListeners(ml: com.tiktok.TikTokBusinessSdk.MemoryListener, dl: com.tiktok.TikTokBusinessSdk.DiskStatusListener, nl: com.tiktok.TikTokBusinessSdk.NetworkListener, nfl: com.tiktok.TikTokBusinessSdk.NextTimeFlushListener): void;
+ public static isGaidCollectionEnabled(): boolean;
+ public static isInSdkDebugMode(): java.lang.Boolean;
+ public static isInSdkLDUMode(): java.lang.Boolean;
+ public static setApiTrackDomain(apiTrackDomain: string): void;
+ public static setOnCrashListener(crashListener: com.tiktok.TikTokBusinessSdk.CrashListener): void;
+ public static disableDebugMode(): void;
+ public static fetchDeferredDeeplinkWithCompletion(callback: com.tiktok.TikTokBusinessSdk.FetchDeferredDeeplinkCompletion): void;
+ public static getSdkGlobalSwitch(): java.lang.Boolean;
+ public static isEnableDebugMode(): java.lang.Boolean;
+ public static setGlobalConfigFetched(): void;
+ public static bothIdsProvided(): boolean;
+ /** @deprecated */
+ public static trackEvent(event: string, eventId: string): void;
+ public static trackTTEvent(event: com.tiktok.appevents.base.EventName, eventId: string): void;
+ public static destroy(): void;
+ public static getCrashListener(): com.tiktok.TikTokBusinessSdk.CrashListener;
+ /** @deprecated */
+ public static trackEvent(event: string, props: org.json.JSONObject, eventId: string): void;
+ public static getAppEventLogger(): com.tiktok.appevents.TTAppEventLogger;
+ public static getApiAvailableVersion(): string;
+ }
+ export module TikTokBusinessSdk {
+ export class CrashListener {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.TikTokBusinessSdk$CrashListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: { onCrash(param0: java.lang.Thread, param1: java.lang.Throwable): void });
+ public constructor();
+ public onCrash(param0: java.lang.Thread, param1: java.lang.Throwable): void;
+ }
+ export class DiskStatusListener {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.TikTokBusinessSdk$DiskStatusListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: { onDiskChange(param0: number, param1: boolean): void; onDumped(param0: number): void });
+ public constructor();
+ public onDiskChange(param0: number, param1: boolean): void;
+ public onDumped(param0: number): void;
+ }
+ export class FetchDeferredDeeplinkCompletion {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.TikTokBusinessSdk$FetchDeferredDeeplinkCompletion interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: { completion(param0: string, param1: com.tiktok.appevents.ErrorData): void });
+ public constructor();
+ public completion(param0: string, param1: com.tiktok.appevents.ErrorData): void;
+ }
+ export class LogLevel {
+ public static class: java.lang.Class;
+ public static NONE: com.tiktok.TikTokBusinessSdk.LogLevel;
+ public static INFO: com.tiktok.TikTokBusinessSdk.LogLevel;
+ public static WARN: com.tiktok.TikTokBusinessSdk.LogLevel;
+ public static DEBUG: com.tiktok.TikTokBusinessSdk.LogLevel;
+ public static valueOf(name: string): com.tiktok.TikTokBusinessSdk.LogLevel;
+ public log(): boolean;
+ public static values(): androidNative.Array;
+ }
+ export class MemoryListener {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.TikTokBusinessSdk$MemoryListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: { onMemoryChange(param0: number): void });
+ public constructor();
+ public onMemoryChange(param0: number): void;
+ }
+ export class NetworkListener {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.TikTokBusinessSdk$NetworkListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: { onNetworkChange(param0: number, param1: number, param2: number, param3: number, param4: number): void });
+ public constructor();
+ public onNetworkChange(param0: number, param1: number, param2: number, param3: number, param4: number): void;
+ }
+ export class NextTimeFlushListener {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.TikTokBusinessSdk$NextTimeFlushListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: { timeLeft(param0: number): void; thresholdLeft(param0: number, param1: number): void });
+ public constructor();
+ public thresholdLeft(param0: number, param1: number): void;
+ public timeLeft(param0: number): void;
+ }
+ export class TTConfig {
+ public static class: java.lang.Class;
+ public disableMonitor(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public enableAutoIapTrack(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public constructor(context: globalAndroid.content.Context, accessToken: string);
+ public openDebugMode(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public isAutoIapTrack(): boolean;
+ /** @deprecated */
+ public constructor(context: globalAndroid.content.Context);
+ public setTTAppId(ttAppId: string): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public setFlushTimeInterval(seconds: number): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public enableLimitedDataUse(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public setAppId(apiId: string): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public disableAutoEvents(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public disableLaunchLogging(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public disableAutoEnhancedDataPostbackEvent(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public disableRetentionLogging(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public disableAutoIapTrack(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public disableInstallLogging(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public setIsLowPerformanceDevice(isLowPerformanceDevice: boolean): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public disableAdvertiserIDCollection(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public disableAutoStart(): com.tiktok.TikTokBusinessSdk.TTConfig;
+ public setLogLevel(ll: com.tiktok.TikTokBusinessSdk.LogLevel): com.tiktok.TikTokBusinessSdk.TTConfig;
+ }
+ export class TTInitCallback {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.TikTokBusinessSdk$TTInitCallback interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: { success(): void; fail(param0: number, param1: string): void });
+ public constructor();
+ public success(): void;
+ public fail(param0: number, param1: string): void;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class DebugModeHelper {
+ public static class: java.lang.Class;
+ public static tryRequestConfig(): void;
+ public static isSuccess(): boolean;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class DeeplinkCallbackWrapper extends com.tiktok.TikTokBusinessSdk.FetchDeferredDeeplinkCompletion {
+ public static class: java.lang.Class;
+ public markInit(): void;
+ public markThread(): void;
+ public constructor(callback: com.tiktok.TikTokBusinessSdk.FetchDeferredDeeplinkCompletion);
+ public completion(deepLinkUrl: string, errorData: com.tiktok.appevents.ErrorData): void;
+ public markEnd(): void;
+ public markRequest(): void;
+ public completion(param0: string, param1: com.tiktok.appevents.ErrorData): void;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class ErrorData {
+ public static class: java.lang.Class;
+ public static TT_DDL_CODE_NOT_INIT: number = -1;
+ public static TT_DDL_CODE_HTTP_ERROR: number = -2;
+ public static TT_DDL_MSG_NOT_INIT: string = 'SDK not initialized';
+ public static TT_DDL_MSG_HTTP_ERROR: string = 'HTTP error';
+ public setCode(code: number): void;
+ public getMsg(): string;
+ public constructor(code: number, msg: string);
+ public getCode(): number;
+ public setMsg(msg: string): void;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class ReferrerInfo {
+ public static class: java.lang.Class;
+ public setGpReferrerInstallTs(gpReferrerInstallTs: number): void;
+ public getGpReferrerInstallTs(): number;
+ public getGpReferrerClickTs(): number;
+ public setGoogleInstallReferrer(googleInstallReferrer: string): void;
+ public constructor(googleInstallReferrer: string, gpReferrerInstallTs: number, gpReferrerClickTs: number);
+ public setGpReferrerClickTs(gpReferrerClickTs: number): void;
+ public getGoogleInstallReferrer(): string;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTActivityLifecycleCallbacksListener extends com.tiktok.appevents.TTLifeCycleCallbacksAdapter {
+ public static class: java.lang.Class;
+ public constructor(appEventLogger: com.tiktok.appevents.TTAppEventLogger);
+ public onResume(owner: androidx.lifecycle.LifecycleOwner): void;
+ public onPause(owner: androidx.lifecycle.LifecycleOwner): void;
+ public onStop(owner: androidx.lifecycle.LifecycleOwner): void;
+ public onDestroy(owner: androidx.lifecycle.LifecycleOwner): void;
+ public static isBackground(): boolean;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTAppEvent {
+ public static class: java.lang.Class;
+ public getUserInfo(): com.tiktok.appevents.TTUserInfo;
+ public getType(): string;
+ public setEventName(eventName: string): void;
+ public getScreenShot(): string;
+ public getTiktokAppIds(): java.util.List;
+ public setPropertiesJson(propertiesJson: string): void;
+ public getPropertiesJson(): string;
+ public setEdp(edp: java.lang.Boolean): void;
+ public getEventId(): string;
+ public toString(): string;
+ public getEventName(): string;
+ public setEventId(eventId: string): void;
+ public setTimeStamp(timeStamp: java.util.Date): void;
+ public setScreenShot(): void;
+ public setTiktokAppIds(tiktokAppIds: java.util.List): void;
+ public getEdp(): java.lang.Boolean;
+ public getTimeStamp(): java.util.Date;
+ public getUniqueId(): java.lang.Long;
+ }
+ export module TTAppEvent {
+ export class TTAppEventType {
+ public static class: java.lang.Class;
+ public static track: com.tiktok.appevents.TTAppEvent.TTAppEventType;
+ public static identify: com.tiktok.appevents.TTAppEvent.TTAppEventType;
+ public static valueOf(name: string): com.tiktok.appevents.TTAppEvent.TTAppEventType;
+ public static values(): androidNative.Array;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTAppEventLogger {
+ public static class: java.lang.Class;
+ public static NETWORK_IS_TURNED_OFF: string = "SDK can\'t send tracking events to server, it will be cached locally, and will be sent in batches only after startTracking";
+ public static autoTrackRetentionEnable: boolean;
+ public clearAll(): void;
+ public trackEdp(event: string, props: org.json.JSONObject, eventId: string): void;
+ public constructor(lifecycleTrackEnable: boolean, disabledEvents: java.util.List, flushTime: number, monitorDisable: boolean);
+ public static getSuccessfulEvents(): java.util.List;
+ public initConfig(initTimeMS: number, callback: com.tiktok.TikTokBusinessSdk.TTInitCallback, sdkInitialized: java.util.concurrent.atomic.AtomicBoolean): void;
+ public fetchGlobalConfig(delaySeconds: number): void;
+ public fetchDeferredDeeplinkWithCompletion(callback: com.tiktok.TikTokBusinessSdk.FetchDeferredDeeplinkCompletion): void;
+ public track(event: string, props: org.json.JSONObject, eventId: string): void;
+ public destroy(): void;
+ public identify(ignore: string, this_: string, externalId: string, externalUserName: string): boolean;
+ public trackPurchase(purchaseInfos: java.util.List): void;
+ public forceFlush(): void;
+ public track(event: string, props: org.json.JSONObject): void;
+ public monitorMetric(name: string, meta: org.json.JSONObject, extra: org.json.JSONObject): void;
+ public closeHeart(): void;
+ public flushWithReason(reason: com.tiktok.appevents.TTAppEventLogger.FlushReason): void;
+ public addToQ(this_: java.lang.Runnable): void;
+ public logout(): void;
+ public startHeart(): void;
+ public trackPurchase(isHistory: boolean, purchaseInfos: java.util.List): void;
+ }
+ export module TTAppEventLogger {
+ export class FlushReason {
+ public static class: java.lang.Class;
+ public static THRESHOLD: com.tiktok.appevents.TTAppEventLogger.FlushReason;
+ public static TIMER: com.tiktok.appevents.TTAppEventLogger.FlushReason;
+ public static START_UP: com.tiktok.appevents.TTAppEventLogger.FlushReason;
+ public static FORCE_FLUSH: com.tiktok.appevents.TTAppEventLogger.FlushReason;
+ public static IDENTIFY: com.tiktok.appevents.TTAppEventLogger.FlushReason;
+ public static LOGOUT: com.tiktok.appevents.TTAppEventLogger.FlushReason;
+ public static valueOf(name: string): com.tiktok.appevents.TTAppEventLogger.FlushReason;
+ public static values(): androidNative.Array;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTAppEventPersist {
+ public static class: java.lang.Class;
+ public static serialVersionUID: number = 1;
+ public addEvents(appEventList: java.util.List): void;
+ public getAppEvents(): java.util.List;
+ public setAppEvents(appEvents: java.util.List): void;
+ public isEmpty(): boolean;
+ public toString(): string;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTAppEventStorage {
+ public static class: java.lang.Class;
+ public static clearAll(): void;
+ public static persist(eventsFromMemory: java.util.List): void;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTAppEventsQueue {
+ public static class: java.lang.Class;
+ public static clearAll(): void;
+ public static size(): number;
+ public static addEvent(event: com.tiktok.appevents.TTAppEvent): void;
+ public static exportAllEvents(): java.util.List;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTAutoEventsManager {
+ public static class: java.lang.Class;
+ public constructor(appEventLogger: com.tiktok.appevents.TTAppEventLogger);
+ public trackOnAppOpenEvents(): void;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTCrashHandler {
+ public static class: java.lang.Class;
+ public static persistToFile(): void;
+ public static isTTSDKRelatedException(e: java.lang.Throwable): boolean;
+ public static handleCrash(originTag: string, ex: java.lang.Throwable, type: number): void;
+ public static retryLater(monitor: org.json.JSONObject): void;
+ public static isTTSDKRelatedException(element: androidNative.Array): boolean;
+ public static initCrashReporter(): void;
+ public constructor();
+ }
+ export module TTCrashHandler {
+ export class TTCrashReport {
+ public static class: java.lang.Class;
+ public addReport(o: string, t: number, a: number): void;
+ }
+ export module TTCrashReport {
+ export class Monitor {
+ public static class: java.lang.Class;
+ public monitor: string;
+ public ts: number;
+ public attempt: number;
+ public constructor(o: string, t: number, a: number);
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTEdpAppEventsQueue {
+ public static class: java.lang.Class;
+ public static clearAll(): void;
+ public static size(): number;
+ public static addEvent(event: com.tiktok.appevents.TTAppEvent): void;
+ public static exportAllEvents(): java.util.List;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTIdentifierFactory {
+ public static class: java.lang.Class;
+ public static getGoogleAdIdInfo(context: globalAndroid.content.Context): com.tiktok.appevents.TTIdentifierFactory.AdIdInfo;
+ public constructor();
+ }
+ export module TTIdentifierFactory {
+ export class AdIdConnection {
+ public static class: java.lang.Class;
+ public getBinder(): globalAndroid.os.IBinder;
+ public onServiceConnected(componentName: globalAndroid.content.ComponentName, iBinder: globalAndroid.os.IBinder): void;
+ public onServiceDisconnected(componentName: globalAndroid.content.ComponentName): void;
+ }
+ export class AdIdInfo {
+ public static class: java.lang.Class;
+ public static FROM_DEFAULT: number = 0;
+ public static FROM_ROM: number = 10;
+ public static FROM_SP: number = 12;
+ public static FROM_REFLECT: number = 13;
+ public static FROM_SERVICE: number = 14;
+ public from: number;
+ public duration: number;
+ public getAdId(): string;
+ public isAdTrackingEnabled(): boolean;
+ }
+ export class AdIdInterface {
+ public static class: java.lang.Class;
+ public asBinder(): globalAndroid.os.IBinder;
+ }
+ export class GAIDCache {
+ public static class: java.lang.Class;
+ public trackEnable(): boolean;
+ public static getInstance(context: globalAndroid.content.Context): com.tiktok.appevents.TTIdentifierFactory.GAIDCache;
+ public getGAID(): string;
+ public update(gaid: string, enable: boolean): void;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTInAppPurchaseManager {
+ public static class: java.lang.Class;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export abstract class TTLifeCycleCallbacksAdapter {
+ public static class: java.lang.Class;
+ public onStart(owner: androidx.lifecycle.LifecycleOwner): void;
+ public onResume(owner: androidx.lifecycle.LifecycleOwner): void;
+ public onPause(owner: androidx.lifecycle.LifecycleOwner): void;
+ public onStop(owner: androidx.lifecycle.LifecycleOwner): void;
+ public onCreate(owner: androidx.lifecycle.LifecycleOwner): void;
+ public onDestroy(owner: androidx.lifecycle.LifecycleOwner): void;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTLifecycleListener {
+ public static class: java.lang.Class;
+ public onActivityStarted(activity: globalAndroid.app.Activity): void;
+ public static getActivityRef(): java.lang.ref.WeakReference;
+ public onActivityDestroyed(activity: globalAndroid.app.Activity): void;
+ public onActivityResumed(activity: globalAndroid.app.Activity): void;
+ public onActivityCreated(activity: globalAndroid.app.Activity, savedInstanceState: globalAndroid.os.Bundle): void;
+ public onActivityPaused(activity: globalAndroid.app.Activity): void;
+ public onActivityStopped(activity: globalAndroid.app.Activity): void;
+ public onActivitySaveInstanceState(activity: globalAndroid.app.Activity, outState: globalAndroid.os.Bundle): void;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTPurchaseInfo {
+ public static class: java.lang.Class;
+ public setAutoTrack(autoTrack: boolean): void;
+ public getSkuDetails(): org.json.JSONObject;
+ public getPurchase(): org.json.JSONObject;
+ public constructor(purchase: org.json.JSONObject, skuDetails: org.json.JSONObject, eventId: string);
+ public constructor(purchase: org.json.JSONObject, skuDetails: org.json.JSONObject);
+ public isSubs(): boolean;
+ public getEventId(): string;
+ public isAutoTrack(): boolean;
+ public setSubs(subs: boolean): void;
+ }
+ export module TTPurchaseInfo {
+ export class InvalidTTPurchaseInfoException {
+ public static class: java.lang.Class;
+ public constructor(str: string);
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTRequest {
+ public static class: java.lang.Class;
+ public static reportAppEvent(event: org.json.JSONObject, propertiesJson: java.util.List, event: boolean): java.util.List;
+ public static averageAssign(i: java.util.List, splitList: number): java.util.List;
+ public static getBusinessSDKConfig(): org.json.JSONObject;
+ public static fetchDeferredDeeplinkWithCompletion(): com.tiktok.util.HttpRequestUtil.HttpResponse;
+ public static getDebugModeConfig(): org.json.JSONObject;
+ public static buildConfigParams(): org.json.JSONObject;
+ public static getSuccessfullySentRequests(): java.util.List;
+ public static reportMonitorEvent(stat: org.json.JSONObject): com.tiktok.util.HttpRequestUtil.HttpResponse;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTRequestBuilder {
+ public static class: java.lang.Class;
+ public static getContextForApi(immutablePart: com.tiktok.appevents.TTAppEvent): org.json.JSONObject;
+ public static getBasePayloadWithTs(): org.json.JSONObject;
+ public static ddlJson(): org.json.JSONObject;
+ public static getBasePayload(): org.json.JSONObject;
+ public static getHealthMonitorBase(): org.json.JSONObject;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTSafeReadObjectUtil {
+ public static class: java.lang.Class;
+ public static safeReadObjects(safeClasses: java.util.List, maxObjects: number, maxBytes: number, in_: java.io.InputStream): any;
+ public static safeReadTTAppEventPersist(in_: java.io.InputStream): com.tiktok.appevents.TTAppEventPersist;
+ public static safeReadTTCrashHandler(in_: java.io.InputStream): com.tiktok.appevents.TTCrashHandler.TTCrashReport;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTThreadFactory {
+ public static class: java.lang.Class;
+ public newThread(r: java.lang.Runnable): java.lang.Thread;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export class TTUserInfo {
+ public static class: java.lang.Class;
+ public static sharedInstance: com.tiktok.appevents.TTUserInfo;
+ public isIdentified(): boolean;
+ public setExternalId(externalId: string): void;
+ public setEmail(email: string): void;
+ public clone(): com.tiktok.appevents.TTUserInfo;
+ public static toSha256(b: string): string;
+ public setIdentified(): void;
+ public toJsonObject(): org.json.JSONObject;
+ public constructor();
+ public static reset(context: globalAndroid.content.Context, forceGenerateAnoId: boolean): void;
+ public setExternalUserName(externalUserName: string): void;
+ public setPhoneNumber(phoneNumber: string): void;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module base {
+ export class EventName {
+ public static class: java.lang.Class;
+ public static ACHIEVE_LEVEL: com.tiktok.appevents.base.EventName;
+ public static ADD_PAYMENT_INFO: com.tiktok.appevents.base.EventName;
+ public static COMPLETE_TUTORIAL: com.tiktok.appevents.base.EventName;
+ public static CREATE_GROUP: com.tiktok.appevents.base.EventName;
+ public static CREATE_ROLE: com.tiktok.appevents.base.EventName;
+ public static GENERATE_LEAD: com.tiktok.appevents.base.EventName;
+ public static IN_APP_AD_CLICK: com.tiktok.appevents.base.EventName;
+ public static IN_APP_AD_IMPR: com.tiktok.appevents.base.EventName;
+ public static INSTALL_APP: com.tiktok.appevents.base.EventName;
+ public static JOIN_GROUP: com.tiktok.appevents.base.EventName;
+ public static LAUNCH_APP: com.tiktok.appevents.base.EventName;
+ public static LOAN_APPLICATION: com.tiktok.appevents.base.EventName;
+ public static LOAN_APPROVAL: com.tiktok.appevents.base.EventName;
+ public static LOAN_DISBURSAL: com.tiktok.appevents.base.EventName;
+ public static LOGIN: com.tiktok.appevents.base.EventName;
+ public static RATE: com.tiktok.appevents.base.EventName;
+ public static REGISTRATION: com.tiktok.appevents.base.EventName;
+ public static SEARCH: com.tiktok.appevents.base.EventName;
+ public static SPEND_CREDITS: com.tiktok.appevents.base.EventName;
+ public static START_TRIAL: com.tiktok.appevents.base.EventName;
+ public static SUBSCRIBE: com.tiktok.appevents.base.EventName;
+ public static IMPRESSION_LEVEL_AD_REVENUE: com.tiktok.appevents.base.EventName;
+ public static UNLOCK_ACHIEVEMENT: com.tiktok.appevents.base.EventName;
+ public static valueOf(name: string): com.tiktok.appevents.base.EventName;
+ public toString(): string;
+ public static values(): androidNative.Array;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module base {
+ export class TTAdRevenueEvent extends com.tiktok.appevents.base.TTBaseEvent {
+ public static class: java.lang.Class;
+ public static newBuilder(adRevenueJson: org.json.JSONObject): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public static newBuilder(adRevenueJson: org.json.JSONObject, eventId: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public static newBuilder(eventName: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public constructor(eventName: string, properties: org.json.JSONObject, eventId: string);
+ public static newBuilder(eventName: string, eventId: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module base {
+ export class TTBaseEvent {
+ public static class: java.lang.Class;
+ public properties: org.json.JSONObject;
+ public eventName: string;
+ public eventId: string;
+ public static newBuilder(eventName: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public constructor(eventName: string, properties: org.json.JSONObject, eventId: string);
+ public static newBuilder(eventName: string, eventId: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ }
+ export module TTBaseEvent {
+ export class Builder {
+ public static class: java.lang.Class;
+ public properties: org.json.JSONObject;
+ public eventName: string;
+ public eventId: string;
+ public addProperty(key: string, value: any): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public addProperty(key: string, value: number): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public build(): com.tiktok.appevents.base.TTBaseEvent;
+ public addProperty(key: string, value: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public constructor(eventName: string, eventId: string);
+ public constructor(eventName: string);
+ public addProperty(key: string, value: boolean): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module contents {
+ export class TTAddToCartEvent extends com.tiktok.appevents.contents.TTContentsEvent {
+ public static class: java.lang.Class;
+ public static newBuilder(): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public static newBuilder(eventName: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public static newBuilder(eventId: string): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public static newBuilder(eventName: string, eventId: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module contents {
+ export class TTAddToWishlistEvent extends com.tiktok.appevents.contents.TTContentsEvent {
+ public static class: java.lang.Class;
+ public static newBuilder(): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public static newBuilder(eventName: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public static newBuilder(eventId: string): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public static newBuilder(eventName: string, eventId: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module contents {
+ export class TTCheckoutEvent extends com.tiktok.appevents.contents.TTContentsEvent {
+ public static class: java.lang.Class;
+ public static newBuilder(): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public static newBuilder(eventName: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public static newBuilder(eventId: string): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public static newBuilder(eventName: string, eventId: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module contents {
+ export class TTContentParams {
+ public static class: java.lang.Class;
+ public static newBuilder(): com.tiktok.appevents.contents.TTContentParams.Builder;
+ public toJSONObject(): org.json.JSONObject;
+ public constructor();
+ }
+ export module TTContentParams {
+ export class Builder {
+ public static class: java.lang.Class;
+ public setPrice(price: number): com.tiktok.appevents.contents.TTContentParams.Builder;
+ public setQuantity(quantity: number): com.tiktok.appevents.contents.TTContentParams.Builder;
+ public constructor();
+ public setContentId(contentId: string): com.tiktok.appevents.contents.TTContentParams.Builder;
+ public build(): com.tiktok.appevents.contents.TTContentParams;
+ public setContentCategory(contentCategory: string): com.tiktok.appevents.contents.TTContentParams.Builder;
+ public setContentName(contentName: string): com.tiktok.appevents.contents.TTContentParams.Builder;
+ public setBrand(brand: string): com.tiktok.appevents.contents.TTContentParams.Builder;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module contents {
+ export class TTContentsEvent extends com.tiktok.appevents.base.TTBaseEvent {
+ public static class: java.lang.Class;
+ }
+ export module TTContentsEvent {
+ export class Builder extends com.tiktok.appevents.base.TTBaseEvent.Builder {
+ public static class: java.lang.Class;
+ public setDescription(description: string): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public build(): com.tiktok.appevents.contents.TTContentsEvent;
+ public build(): com.tiktok.appevents.base.TTBaseEvent;
+ public setContentType(contentType: string): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public setContentId(contentId: string): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public setContents(jsonArray: androidNative.Array): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public setCurrency(currency: com.tiktok.appevents.contents.TTContentsEventConstants.Currency): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public setValue(value: number): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module contents {
+ export class TTContentsEventConstants {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.appevents.contents.TTContentsEventConstants interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {});
+ public constructor();
+ }
+ export module TTContentsEventConstants {
+ export class ContentsEventName {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.appevents.contents.TTContentsEventConstants$ContentsEventName interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {});
+ public constructor();
+ public static EVENT_NAME_ADD_TO_CARD: string = 'AddToCart';
+ public static EVENT_NAME_PURCHASE: string = 'Purchase';
+ public static EVENT_NAME_VIEW_CONTENT: string = 'ViewContent';
+ public static EVENT_NAME_ADD_TO_WISHLIST: string = 'AddToWishlist';
+ public static EVENT_NAME_CHECK_OUT: string = 'Checkout';
+ }
+ export class Currency {
+ public static class: java.lang.Class;
+ public static AED: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static ARS: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static AUD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static BDT: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static BHD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static BIF: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static BOB: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static BRL: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static CAD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static CHF: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static CLP: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static CNY: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static COP: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static CRC: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static CZK: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static DKK: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static DZD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static EGP: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static EUR: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static GBP: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static GTQ: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static HKD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static HNL: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static HUF: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static IDR: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static ILS: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static INR: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static ISK: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static JPY: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static KES: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static KHR: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static KRW: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static KWD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static KZT: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static MAD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static MOP: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static MXN: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static MYR: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static NGN: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static NIO: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static NOK: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static NZD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static OMR: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static PEN: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static PHP: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static PKR: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static PLN: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static PYG: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static QAR: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static RON: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static RUB: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static SAR: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static SEK: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static SGD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static THB: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static TRY: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static TWD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static UAH: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static USD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static VES: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static VND: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static ZAR: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static BGN: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static IQD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static JOD: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static LBP: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static TZS: com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static valueOf(name: string): com.tiktok.appevents.contents.TTContentsEventConstants.Currency;
+ public static values(): androidNative.Array;
+ }
+ export class Params {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.appevents.contents.TTContentsEventConstants$Params interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {});
+ public constructor();
+ public static EVENT_PROPERTY_CONTENT_ID: string = 'content_id';
+ public static EVENT_PROPERTY_DESCRIPTION: string = 'description';
+ public static EVENT_PROPERTY_ORDER_ID: string = 'order_id';
+ public static EVENT_PROPERTY_VALUE: string = 'value';
+ public static EVENT_PROPERTY_CURRENCY: string = 'currency';
+ public static EVENT_PROPERTY_CONTENT_TYPE: string = 'content_type';
+ public static EVENT_PROPERTY_CONTENTS: string = 'contents';
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module contents {
+ export class TTPurchaseEvent extends com.tiktok.appevents.contents.TTContentsEvent {
+ public static class: java.lang.Class;
+ public static newBuilder(): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public static newBuilder(eventName: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public static newBuilder(eventId: string): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public static newBuilder(eventName: string, eventId: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module contents {
+ export class TTViewContentEvent extends com.tiktok.appevents.contents.TTContentsEvent {
+ public static class: java.lang.Class;
+ public static newBuilder(): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public static newBuilder(eventName: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ public static newBuilder(eventId: string): com.tiktok.appevents.contents.TTContentsEvent.Builder;
+ public static newBuilder(eventName: string, eventId: string): com.tiktok.appevents.base.TTBaseEvent.Builder;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module edp {
+ export class EDPConfig {
+ public static class: java.lang.Class;
+ public static DEFAULT_SENSIG_FILTERING_REGEX_LIST: string = '([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9._-]+)|(\\+?0?86-?)?1[3-9]\\d{9}|(\\+\\d{1,2}\\s?)?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{4}';
+ public static enable_sdk: boolean;
+ public static enable_app_launch_track: boolean;
+ public static enable_page_show_track: boolean;
+ public static enable_click_track: boolean;
+ public static enable_webview_request_track: boolean;
+ public static enable_pay_show_track: boolean;
+ public static page_detail_upload_deep_count: number;
+ public static time_diff_frequency_control: number;
+ public static report_frequency_control: number;
+ public static button_black_list: java.util.Set;
+ public static sensig_filtering_regex_list: string;
+ public static sensig_filtering_regex_version: number;
+ public static enable_sync_get_touch_info: boolean;
+ public constructor();
+ public static optConfig(btn: org.json.JSONObject): void;
+ }
+ export module EDPConfig {
+ export class ConfigConst {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.appevents.edp.EDPConfig$ConfigConst interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {});
+ public constructor();
+ public static PAGE_DETAIL_UPLOAD_DEEP_COUNT: string = 'page_detail_upload_deep_count';
+ public static ENABLE_SDK: string = 'enable_sdk';
+ public static REPORT_FREQUENCY_CONTROL: string = 'report_frequency_control';
+ public static ENABLE_SYNC_GET_TOUCH_POSITION: string = 'enable_sync_get_touch_position';
+ public static EDP_NATIVE_SDK_CONFIG: string = 'enhanced_data_postback_native_config';
+ public static ENABLE_PAY_SHOW_TRACK: string = 'enable_pay_show_track';
+ public static TIME_DIFF_FREQUENCY_CONTROL: string = 'time_diff_frequency_control';
+ public static SENSIG_FILTERING_REGEX_VERSION: string = 'sensig_filtering_regex_version';
+ public static SENSIG_FILTERING_REGEX_LIST: string = 'sensig_filtering_regex_list';
+ public static ENABLE_APP_LAUNCH_TRACK: string = 'enable_app_launch_track';
+ public static ENABLE_WEBVIEW_REQUEST_TRACK: string = 'enable_webview_request_track';
+ public static EDP_UNITY_SDK_CONFIG: string = 'enhanced_data_postback_unity_config';
+ public static BUTTON_BLACK_LIST: string = 'button_black_list';
+ public static ENABLE_CLICK_TRACK: string = 'enable_click_track';
+ public static ENABLE_PAGE_SHOW_TRACK: string = 'enable_page_show_track';
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module edp {
+ export class Sensig {
+ public static class: java.lang.Class;
+ public regexList: string;
+ public version: number;
+ public setVersion(version: number): void;
+ public setRegexList(regexList: string): void;
+ public getVersion(): number;
+ public constructor(version: number, regexList: string);
+ public getRegexList(): string;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module edp {
+ export class TTActivityLifecycleCallbacks {
+ public static class: java.lang.Class;
+ public hasSendPageShow: boolean;
+ public constructor();
+ public registerFirstActivity(): void;
+ public onActivityResumed(activity: globalAndroid.app.Activity): void;
+ public onActivityStopped(activity: globalAndroid.app.Activity): void;
+ public onActivityPaused(activity: globalAndroid.app.Activity): void;
+ public onActivityCreated(activity: globalAndroid.app.Activity, savedInstanceState: globalAndroid.os.Bundle): void;
+ public onActivitySaveInstanceState(activity: globalAndroid.app.Activity, outState: globalAndroid.os.Bundle): void;
+ public onActivityStarted(activity: globalAndroid.app.Activity): void;
+ public onActivityDestroyed(activity: globalAndroid.app.Activity): void;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module edp {
+ export class TTAppLaunchEvent {
+ public static class: java.lang.Class;
+ public getProp(): org.json.JSONObject;
+ public constructor(prop: org.json.JSONObject, ts: number);
+ public setProp(prop: org.json.JSONObject): void;
+ public getTs(): number;
+ public setTs(ts: number): void;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module edp {
+ export class TTEDPEventConstants {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.appevents.edp.TTEDPEventConstants interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: {});
+ public constructor();
+ public static EDP_EVENT_NAME_WEBVIEW_REQUEST: string = 'webview_request';
+ public static EDP_EVENT_PROPERTY_CURRENT_PAGE_NAME: string = 'current_page_name';
+ public static EDP_EVENT_PROPERTY_PAGE_DEEP_COUNT: string = 'page_deep_count';
+ public static EDP_EVENT_PROPERTY_PAY_CODE: string = 'code';
+ public static EDP_EVENT_NAME_CLICK: string = 'click';
+ public static EDP_EVENT_PROPERTY_PAGE_COMPONENTS: string = 'page_components';
+ public static EDP_EVENT_PROPERTY_PAY_SKU_INFO: string = 'sku_info';
+ public static EDP_EVENT_NAME_PAY_SHOW: string = 'pay_show';
+ public static EDP_EVENT_PROPERTY_CLICK_BUTTON_TEXT: string = 'click_button_text';
+ public static EDP_EVENT_PROPERTY_INDEX: string = 'index';
+ public static EDP_EVENT_PROPERTY_CLICK_POSITON_Y: string = 'click_position_y';
+ public static EDP_EVENT_PROPERTY_CLICK_POSITON_X: string = 'click_position_x';
+ public static EDP_EVENT_PROPERTY_CLICK_SIZE_H: string = 'click_size_h';
+ public static EDP_EVENT_PROPERTY_WEBVIEW_REQUEST_URL: string = 'url';
+ public static EDP_EVENT_PROPERTY_CLICK_DURATION: string = 'click_duration';
+ public static EDP_EVENT_PROPERTY_SOURCE_URL: string = 'source_url';
+ public static EDP_EVENT_NAME_APP_LAUNCH: string = 'app_launch';
+ public static EDP_EVENT_PROPERTY_REFER: string = 'refer';
+ public static EDP_EVENT_PROPERTY_CLASS_NAME: string = 'class_name';
+ public static EDP_EVENT_PROPERTY_FROM_BACKGROUND: string = 'from_background';
+ public static EDP_EVENT_NAME_PAGE_SHOW: string = 'page_show';
+ public static EDP_EVENT_PROPERTY_CLICK_SIZE_W: string = 'click_size_w';
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module edp {
+ export class TTEDPEventTrack {
+ public static class: java.lang.Class;
+ public static LAST_CLICK_TS: number;
+ public static isSending: boolean;
+ public static pageShowIsSending: boolean;
+ public static trackFirstAppLaunch(): void;
+ public static trackPageShow(property: string, eventProp: number, pageName: boolean, index: org.json.JSONObject, isFromBackground: number): void;
+ public constructor();
+ public static trackClick(property: string, eventProp: number, className: number, x: number, y: number, width: string, height: string, text: org.json.JSONObject, pageName: number, components: number): void;
+ public static checkUpload(): boolean;
+ public static trackWebviewRequest(property: string): void;
+ public static trackPayShow(property: number, eventProp: org.json.JSONArray): void;
+ public static trackUnityEvent(eventProp: string, name: org.json.JSONObject): void;
+ public static trackAppLaunch(property: string, eventProp: string): void;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module edp {
+ export class TTHierarchyHelper {
+ public static class: java.lang.Class;
+ public static mHandler: globalAndroid.os.Handler;
+ public static proxyOnTouch(view: java.lang.ref.WeakReference, act: java.lang.ref.WeakReference): void;
+ public static getViewHierarchyCount(i: java.lang.ref.WeakReference): number;
+ public constructor();
+ public static getViewHierarchyCountAndRegisterOnTouch(i: java.lang.ref.WeakReference, vp: java.lang.ref.WeakReference): number;
+ public static getViewHierarchy(text: java.lang.ref.WeakReference, jsonItem: number): org.json.JSONObject;
+ public static getHandler(): globalAndroid.os.Handler;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module edp {
+ export module proxy {
+ export class ITouchListener {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.appevents.edp.proxy.ITouchListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: { onTouch(param0: globalAndroid.view.View, param1: globalAndroid.view.MotionEvent): boolean });
+ public constructor();
+ public onTouch(param0: globalAndroid.view.View, param1: globalAndroid.view.MotionEvent): boolean;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module edp {
+ export module proxy {
+ export class ProxyOnTouchListener {
+ public static class: java.lang.Class;
+ public onTouch(v: globalAndroid.view.View, event: globalAndroid.view.MotionEvent): boolean;
+ public constructor(listener: com.tiktok.appevents.edp.proxy.ITouchListener, originOnTouchListener: globalAndroid.view.View.OnTouchListener);
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module appevents {
+ export module edp {
+ export module proxy {
+ export class TouchProxyHelper {
+ public static class: java.lang.Class;
+ public constructor();
+ public static proxy(view: java.lang.ref.WeakReference, method: com.tiktok.appevents.edp.proxy.ITouchListener): void;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module iap {
+ export class TTInAppPurchaseWrapper {
+ public static class: java.lang.Class;
+ public static sExecutor: java.util.concurrent.ExecutorService;
+ public static devAutoTrack: number;
+ public static hasReportedHistoryInLife: boolean;
+ public static autoTrackPaymentEnable: boolean;
+ public static autoTrackPaymentTypes: java.util.Set;
+ public static autoTrackPaymentJson: boolean;
+ public static autoTrackPaymentHistory: boolean;
+ public static autoTrackPaymentHistoryINAPP: number;
+ public static autoTrackPaymentHistorySUBS: number;
+ public static canTrackINAPP(): boolean;
+ public static updateConfig(type: org.json.JSONObject): void;
+ public static registerIapTrack(): void;
+ public static tryReportIapEvent(actName: globalAndroid.app.Activity): void;
+ public constructor();
+ public static canTrackSUBS(): boolean;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module iap {
+ export module billing {
+ export class GPBillVersions {
+ public static class: java.lang.Class;
+ public static getMajorVersion(): com.tiktok.iap.billing.GPBillVersions.GPBillingVer;
+ public constructor();
+ public static getVersion(): string;
+ }
+ export module GPBillVersions {
+ export class GPBillingVer {
+ public static class: java.lang.Class;
+ public static NONE: com.tiktok.iap.billing.GPBillVersions.GPBillingVer;
+ public static V1: com.tiktok.iap.billing.GPBillVersions.GPBillingVer;
+ public static V2_V4: com.tiktok.iap.billing.GPBillVersions.GPBillingVer;
+ public static V5_V8: com.tiktok.iap.billing.GPBillVersions.GPBillingVer;
+ public static valueOf(name: string): com.tiktok.iap.billing.GPBillVersions.GPBillingVer;
+ public static values(): androidNative.Array;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module iap {
+ export module billing {
+ export module client {
+ export class BillCache {
+ public static class: java.lang.Class;
+ public saveSUBSLast(this_: number): void;
+ public getSUBSLast(): number;
+ public getINAPPLast(): number;
+ public saveINAPPLast(this_: number): void;
+ public static getInstance(): com.tiktok.iap.billing.client.BillCache;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module iap {
+ export module billing {
+ export module client {
+ export class BillUtils {
+ public static class: java.lang.Class;
+ public constructor();
+ public static parserJsonFromProductDetail(matcher: string): string;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module iap {
+ export module billing {
+ export module client {
+ export class EmptyBillingProxy extends com.tiktok.iap.billing.client.IBillingProxy {
+ public static class: java.lang.Class;
+ public init(): void;
+ public queryPurchaseHistory(): void;
+ public getVersion(): com.tiktok.iap.billing.GPBillVersions.GPBillingVer;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module iap {
+ export module billing {
+ export module client {
+ export class IBillingProxy {
+ public static class: java.lang.Class;
+ /**
+ * Constructs a new instance of the com.tiktok.iap.billing.client.IBillingProxy interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
+ */
+ public constructor(implementation: { getVersion(): com.tiktok.iap.billing.GPBillVersions.GPBillingVer; init(): void; queryPurchaseHistory(): void });
+ public constructor();
+ public init(): void;
+ public queryPurchaseHistory(): void;
+ public getVersion(): com.tiktok.iap.billing.GPBillVersions.GPBillingVer;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module iap {
+ export module billing {
+ export module client {
+ export class TTBillingFactory {
+ public static class: java.lang.Class;
+ public constructor();
+ public static createBillingProxy(): com.tiktok.iap.billing.client.IBillingProxy;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module iap {
+ export module billing {
+ export module client {
+ export class V5_V8BillingProxy extends com.tiktok.iap.billing.client.IBillingProxy {
+ public static class: java.lang.Class;
+ public init(): void;
+ public queryPurchaseHistory(): void;
+ public getVersion(): com.tiktok.iap.billing.GPBillVersions.GPBillingVer;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module iap {
+ export module billing {
+ export module model {
+ export class TTPayData {
+ public static class: java.lang.Class;
+ public productId: string;
+ public data: org.json.JSONObject;
+ public purchaseTime: number;
+ public constructor();
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module iap {
+ export module billing {
+ export module model {
+ export class TTProductType {
+ public static class: java.lang.Class;
+ public static IN_APP: com.tiktok.iap.billing.model.TTProductType;
+ public static SUBS: com.tiktok.iap.billing.model.TTProductType;
+ public getType(): string;
+ public static valueOf(name: string): com.tiktok.iap.billing.model.TTProductType;
+ public static values(): androidNative.Array;
+ public toString(): string;
+ }
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module unity {
+ export class TTUnityBridge {
+ public static class: java.lang.Class;
+ public static setConfigCallback(classtype: org.json.JSONObject): void;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class DecryptUtil {
+ public static class: java.lang.Class;
+ public static encryptWithHmac(secretKey: string): string;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class HttpRequestUtil {
+ public static class: java.lang.Class;
+ public static connect(key: string, value: java.util.Map, entry: com.tiktok.util.HttpRequestUtil.HttpRequestOptions, url: string, headerParamMap: string): javax.net.ssl.HttpsURLConnection;
+ public static doPost(url: string, headerParamMap: java.util.Map, jsonStr: string): com.tiktok.util.HttpRequestUtil.HttpResponse;
+ public static doPost(securityKey: string, redirectUrl: java.util.Map, result: string, json: com.tiktok.util.HttpRequestUtil.HttpRequestOptions, info: boolean): com.tiktok.util.HttpRequestUtil.HttpResponse;
+ public static doGet(redirectUrl: string, result: java.util.Map, json: com.tiktok.util.HttpRequestUtil.HttpRequestOptions): com.tiktok.util.HttpRequestUtil.HttpResponse;
+ public static doPost(ignore: string, url: java.util.Map, headerParamMap: string, jsonStr: boolean): com.tiktok.util.HttpRequestUtil.HttpResponse;
+ public static shouldRedirect(status: number): boolean;
+ public constructor();
+ }
+ export module HttpRequestUtil {
+ export class GzipInfo {
+ public static class: java.lang.Class;
+ public duration: number;
+ public bytes: androidNative.Array;
+ public throwable1: java.lang.Throwable;
+ public throwable2: java.lang.Throwable;
+ }
+ export class HttpRequestOptions {
+ public static class: java.lang.Class;
+ public connectTimeout: number;
+ public readTimeout: number;
+ public constructor();
+ public configConnection(connection: java.net.HttpURLConnection): void;
+ }
+ export class HttpResponse {
+ public static class: java.lang.Class;
+ public url: string;
+ public body: org.json.JSONObject;
+ public code: number;
+ public httpCode: number;
+ public throwable: java.lang.Throwable;
+ public duration: number;
+ public constructor();
+ public isOK(): boolean;
+ public getErrCode(): number;
+ public getErrMsg(): string;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class IOUtils {
+ public static class: java.lang.Class;
+ public static close(parcel: androidNative.Array): void;
+ public static close(closeable: androidNative.Array): void;
+ public static close(conn: androidNative.Array): void;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class JSON {
+ public static class: java.lang.Class;
+ public static buildArr(): org.json.JSONArray;
+ public static putArr(arr: org.json.JSONArray, object: any): void;
+ public static getDouble(json: org.json.JSONObject, key: string): number;
+ public static getJsonObject(json: org.json.JSONObject, key: string): org.json.JSONObject;
+ public static getBoolean(json: org.json.JSONObject, key: string): boolean;
+ public static putObject(json: org.json.JSONObject, key: string, data: any): void;
+ public static getString(json: org.json.JSONObject, key: string): string;
+ public static getBoolean(json: org.json.JSONObject, key: string, fallback: boolean): boolean;
+ public static getObject(json: org.json.JSONObject, key: string): any;
+ public static getJSONObject(jsonArray: org.json.JSONArray, index: number): org.json.JSONObject;
+ public static getObject(json: org.json.JSONObject, key: string, fallback: any): any;
+ public constructor();
+ public static build(map: java.util.Map): org.json.JSONObject;
+ public static getDouble(json: org.json.JSONObject, key: string, fallback: number): number;
+ public static putLong(json: org.json.JSONObject, key: string, data: number): void;
+ public static remove(i: org.json.JSONArray, i: number): org.json.JSONArray;
+ public static getLong(json: org.json.JSONObject, key: string): number;
+ public static putDouble(json: org.json.JSONObject, key: string, data: number): void;
+ public static getLong(json: org.json.JSONObject, key: string, fallback: number): number;
+ public static putBoolean(json: org.json.JSONObject, key: string, data: boolean): void;
+ public static buildArr(json: string): org.json.JSONArray;
+ public static getString(json: org.json.JSONObject, key: string, fallback: string): string;
+ public static getKeys(json: org.json.JSONObject): java.util.Iterator;
+ public static getJsonArray(json: org.json.JSONObject, key: string): org.json.JSONArray;
+ public static build(): org.json.JSONObject;
+ public static putInt(json: org.json.JSONObject, key: string, data: number): void;
+ public static build(json: string): org.json.JSONObject;
+ public static getInt(json: org.json.JSONObject, key: string, fallback: number): number;
+ public static getInt(json: org.json.JSONObject, key: string): number;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class NetworkTimeout {
+ public static class: java.lang.Class;
+ public static sConfigTime: number;
+ public static sEventTime: number;
+ public static updateConfig(json: org.json.JSONObject): void;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class RegexUtil {
+ public static class: java.lang.Class;
+ public static validateTTAppId(ttAppIdRegex: string): boolean;
+ public static replaceAllToHash(sha256: string, stringBuffer: string): string;
+ public static validateAppId(appIdRegex: string): boolean;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class SystemInfoUtil {
+ public static class: java.lang.Class;
+ public static getLibraryName(): string;
+ public static getPackageName(): string;
+ public static getsScreenWidth(): number;
+ public static getInstallSource(): string;
+ public static initInstallReferrer(): void;
+ public static getAppVersionCode(): number;
+ public static getAppSessionId(): string;
+ public static updateSensigInfo(): void;
+ public static getInstallReferrer(): com.tiktok.appevents.ReferrerInfo;
+ public static getNetworkClass(networkType: globalAndroid.content.Context): string;
+ public static getsDensity(): number;
+ public constructor();
+ public static getAppName(): string;
+ public static getAndroidVersion(): string;
+ public static initUserAgent(): void;
+ public static initAppSessionId(): void;
+ public static getBcp47Language(): string;
+ public static getLocale(): string;
+ public static isUnity(): boolean;
+ public static getSDKVersion(): string;
+ public static getLocalIpAddress(): string;
+ public static getUserAgent(): string;
+ public static getsScreenHeight(): number;
+ public static getAppVersionName(): string;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class TTConst {
+ public static class: java.lang.Class;
+ public static TTSDK_KEY_VALUE_STORE: string = 'com.tiktok.sdk.keystore';
+ public static TTSDK_APP_ANONYMOUS_ID: string = 'com.tiktok.sdk.anonymousId';
+ public static TTSDK_APP_SENSIG_VERSION: string = 'com.tiktok.sdk.anonymousId.version';
+ public static TTSDK_APP_SENSIG_LIST: string = 'com.tiktok.sdk.anonymousId.list';
+ public static TTSDK_APP_FIRST_INSTALL: string = 'com.tiktok.sdk.firstInstall';
+ public static TTSDK_APP_LAST_LAUNCH: string = 'com.tiktok.sdk.lastLaunch';
+ public static TTSDK_APP_2DR_TIME: string = 'com.tiktok.sdk.2drTime';
+ public static TTSDK_USER_AGENT: string = 'com.tiktok.user.agent';
+ public static TTSDK_PREFIX: string = 'com.tiktok';
+ public static TTSDK_EXCEPTION_NET_ERROR: number = 1;
+ public static TTSDK_EXCEPTION_SDK_CATCH: number = 2;
+ public static TTSDK_EXCEPTION_CRASH: number = 3;
+ public static TRACK_TYPE: string = 'type';
+ public static TRACK_TYPE_AUTO: string = 'auto';
+ public static ERROR_MESSAGE_INVALID_ID: string = 'Invalid appId or tiktokAppId';
+ public constructor();
+ }
+ export module TTConst {
+ export class ApiErrorCodes {
+ public static class: java.lang.Class;
+ public static PARTIAL_SUCCESS: com.tiktok.util.TTConst.ApiErrorCodes;
+ public static API_ERROR: com.tiktok.util.TTConst.ApiErrorCodes;
+ public code: java.lang.Integer;
+ public static values(): androidNative.Array;
+ public static valueOf(name: string): com.tiktok.util.TTConst.ApiErrorCodes;
+ }
+ export class AutoEvents {
+ public static class: java.lang.Class;
+ public static InstallApp: com.tiktok.util.TTConst.AutoEvents;
+ public static SecondDayRetention: com.tiktok.util.TTConst.AutoEvents;
+ public static LaunchAPP: com.tiktok.util.TTConst.AutoEvents;
+ public name: string;
+ public static values(): androidNative.Array;
+ public static valueOf(name: string): com.tiktok.util.TTConst.AutoEvents;
+ }
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class TTHandlerUtil {
+ public static class: java.lang.Class;
+ public removeCallbacks(runnable: java.lang.Runnable): void;
+ public post(runnable: java.lang.Runnable): void;
+ public static getInstance(): com.tiktok.util.TTHandlerUtil;
+ public postDelayed(runnable: java.lang.Runnable, delayMillis: number): void;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class TTKeyValueStore {
+ public static class: java.lang.Class;
+ public get(key: string): string;
+ public getInt(key: string): number;
+ public set(this_: java.util.HashMap): void;
+ public set(key: string, value: any): void;
+ public constructor(ctx: globalAndroid.content.Context);
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class TTLogger {
+ public static class: java.lang.Class;
+ public logLevel: com.tiktok.TikTokBusinessSdk.LogLevel;
+ public error(error: java.lang.Throwable, format: string, extra: androidNative.Array): void;
+ public warn(format: string, extra: androidNative.Array): void;
+ public constructor(tag: string, logLevel: com.tiktok.TikTokBusinessSdk.LogLevel);
+ public debug(this_: string, format: androidNative.Array): void;
+ public info(this_: string, format: androidNative.Array): void;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class TTReflect {
+ public static class: java.lang.Class;
+ public call(receiver: any, args: androidNative.Array): any;
+ public static getMethod(clazz: string, className: string, methodName: androidNative.Array>): java.lang.reflect.Method;
+ public static callMethod(method: java.lang.reflect.Method, receiver: any, args: androidNative.Array): any;
+ public static on(clazz: java.lang.Class): com.tiktok.util.TTReflect;
+ public getValue(receiver: any): any;
+ public static getMethod(clazz: java.lang.Class, methodName: string, parameterTypes: androidNative.Array>): java.lang.reflect.Method;
+ public static on(className: string): com.tiktok.util.TTReflect;
+ public findMethod(methodName: string, parameterTypes: androidNative.Array>): com.tiktok.util.TTReflect;
+ public findField(fieldName: string): com.tiktok.util.TTReflect;
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export abstract class TTSafeRunnable {
+ public static class: java.lang.Class;
+ public run(): void;
+ public doSafeRun(): void;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class TTUtil {
+ public static class: java.lang.Class;
+ public static setSensigInfo(store: globalAndroid.content.Context, context: com.tiktok.appevents.edp.Sensig): void;
+ public static checkThread(tag: string): void;
+ public static getOrGenAnoId(store: globalAndroid.content.Context, anoId: boolean): string;
+ public static getMetaException(i: java.lang.Throwable, rootCause: java.lang.Long, argMsg: number): org.json.JSONObject;
+ public static getMetaWithTS(ts: java.lang.Long): org.json.JSONObject;
+ public static getSensigInfo(store: globalAndroid.content.Context): com.tiktok.appevents.edp.Sensig;
+ public static getMonitorException(ex: java.lang.Throwable, ts: java.lang.Long, type: number): org.json.JSONObject;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class TimeUtil {
+ public static class: java.lang.Class;
+ public static getISO8601Timestamp(): string;
+ public static getISO8601Timestamp(tz: java.util.Date): string;
+ public static dateStr(c1: number): string;
+ public static isNowAfter(yesterdayStr: string, referenceStr: number): boolean;
+ public constructor();
+ }
+ }
+ }
+}
+
+declare module com {
+ export module tiktok {
+ export module util {
+ export class UrlConst {
+ public static class: java.lang.Class;
+ public static HTTPS: string = 'https://';
+ public static PATH_CONFIG: string = '/api/v1/app_sdk/config';
+ public static PATH_CONFIG2: string = '/api/v1/app_sdk/cache/config';
+ public static PATH_DDL: string = '/api/v1/app_sdk/ddl';
+ public static PATH_MONITOR: string = '/api/v1/app_sdk/monitor';
+ public static PATH_BATCH: string = '/api/v1/app_sdk/batch';
+ public static getBatchUrl(): string;
+ public static getDebugModeUrl(): string;
+ public static getConfigUrl(): string;
+ public static getMonitorUrl(): string;
+ public constructor();
+ public static getDDLUrl(): string;
+ }
+ }
+ }
+}
+
+//Generics information:
diff --git a/packages/nativescript-tiktok/typings/objc!TikTokBusinessSDK.d.ts b/packages/nativescript-tiktok/typings/objc!TikTokBusinessSDK.d.ts
new file mode 100644
index 0000000..e27307f
--- /dev/null
+++ b/packages/nativescript-tiktok/typings/objc!TikTokBusinessSDK.d.ts
@@ -0,0 +1,577 @@
+declare var TTAccumulatedSKANValuesKey: string;
+
+declare var TTCurrencyAED: string;
+
+declare var TTCurrencyARS: string;
+
+declare var TTCurrencyAUD: string;
+
+declare var TTCurrencyBDT: string;
+
+declare var TTCurrencyBGN: string;
+
+declare var TTCurrencyBHD: string;
+
+declare var TTCurrencyBIF: string;
+
+declare var TTCurrencyBOB: string;
+
+declare var TTCurrencyBRL: string;
+
+declare var TTCurrencyCAD: string;
+
+declare var TTCurrencyCHF: string;
+
+declare var TTCurrencyCLP: string;
+
+declare var TTCurrencyCNY: string;
+
+declare var TTCurrencyCOP: string;
+
+declare var TTCurrencyCRC: string;
+
+declare var TTCurrencyCZK: string;
+
+declare var TTCurrencyDKK: string;
+
+declare var TTCurrencyDZD: string;
+
+declare var TTCurrencyEGP: string;
+
+declare var TTCurrencyEUR: string;
+
+declare var TTCurrencyGBP: string;
+
+declare var TTCurrencyGTQ: string;
+
+declare var TTCurrencyHKD: string;
+
+declare var TTCurrencyHNL: string;
+
+declare var TTCurrencyHUF: string;
+
+declare var TTCurrencyIDR: string;
+
+declare var TTCurrencyILS: string;
+
+declare var TTCurrencyINR: string;
+
+declare var TTCurrencyIQD: string;
+
+declare var TTCurrencyISK: string;
+
+declare var TTCurrencyJOD: string;
+
+declare var TTCurrencyJPY: string;
+
+declare var TTCurrencyKES: string;
+
+declare var TTCurrencyKHR: string;
+
+declare var TTCurrencyKRW: string;
+
+declare var TTCurrencyKWD: string;
+
+declare var TTCurrencyKZT: string;
+
+declare var TTCurrencyLBP: string;
+
+declare var TTCurrencyMAD: string;
+
+declare var TTCurrencyMOP: string;
+
+declare var TTCurrencyMXN: string;
+
+declare var TTCurrencyMYR: string;
+
+declare var TTCurrencyNGN: string;
+
+declare var TTCurrencyNIO: string;
+
+declare var TTCurrencyNOK: string;
+
+declare var TTCurrencyNZD: string;
+
+declare var TTCurrencyOMR: string;
+
+declare var TTCurrencyPEN: string;
+
+declare var TTCurrencyPHP: string;
+
+declare var TTCurrencyPKR: string;
+
+declare var TTCurrencyPLN: string;
+
+declare var TTCurrencyPYG: string;
+
+declare var TTCurrencyQAR: string;
+
+declare var TTCurrencyRON: string;
+
+declare var TTCurrencyRUB: string;
+
+declare var TTCurrencySAR: string;
+
+declare var TTCurrencySEK: string;
+
+declare var TTCurrencySGD: string;
+
+declare var TTCurrencyTHB: string;
+
+declare var TTCurrencyTRY: string;
+
+declare var TTCurrencyTWD: string;
+
+declare var TTCurrencyTZS: string;
+
+declare var TTCurrencyUAH: string;
+
+declare var TTCurrencyUSD: string;
+
+declare var TTCurrencyVES: string;
+
+declare var TTCurrencyVND: string;
+
+declare var TTCurrencyZAR: string;
+
+declare var TTEventNameAchieveLevel: string;
+
+declare var TTEventNameAddPaymentInfo: string;
+
+declare var TTEventNameCompleteTutorial: string;
+
+declare var TTEventNameCreateGroup: string;
+
+declare var TTEventNameCreateRole: string;
+
+declare var TTEventNameGenerateLead: string;
+
+declare var TTEventNameImpressionLevelAdRevenue: string;
+
+declare var TTEventNameInAppADClick: string;
+
+declare var TTEventNameInAppADImpr: string;
+
+declare var TTEventNameInstallApp: string;
+
+declare var TTEventNameJoinGroup: string;
+
+declare var TTEventNameLaunchAPP: string;
+
+declare var TTEventNameLoanApplication: string;
+
+declare var TTEventNameLoanApproval: string;
+
+declare var TTEventNameLoanDisbursal: string;
+
+declare var TTEventNameLogin: string;
+
+declare var TTEventNameRate: string;
+
+declare var TTEventNameRegistration: string;
+
+declare var TTEventNameSearch: string;
+
+declare var TTEventNameSpendCredits: string;
+
+declare var TTEventNameStartTrial: string;
+
+declare var TTEventNameSubscribe: string;
+
+declare var TTEventNameUnlockAchievement: string;
+
+declare var TTLatestCoarseValueKey: string;
+
+declare var TTLatestFineValueKey: string;
+
+declare var TTSKANTimeWindowKey: string;
+
+declare class TikTokAdRevenueEvent extends TikTokBaseEvent {
+ static alloc(): TikTokAdRevenueEvent; // inherited from NSObject
+
+ static eventWithName(eventName: string): TikTokAdRevenueEvent; // inherited from TikTokBaseEvent
+
+ static new(): TikTokAdRevenueEvent; // inherited from NSObject
+
+ constructor(o: { adRevenue: NSDictionary; eventId: string });
+
+ initWithAdRevenueEventId(adRevenue: NSDictionary, eventId: string): this;
+}
+
+declare class TikTokAddToCartEvent extends TikTokContentsEvent {
+ static alloc(): TikTokAddToCartEvent; // inherited from NSObject
+
+ static eventWithName(eventName: string): TikTokAddToCartEvent; // inherited from TikTokBaseEvent
+
+ static new(): TikTokAddToCartEvent; // inherited from NSObject
+
+ constructor(o: { eventId: string });
+
+ initWithEventId(eventId: string): this;
+}
+
+declare class TikTokAddToWishlistEvent extends TikTokContentsEvent {
+ static alloc(): TikTokAddToWishlistEvent; // inherited from NSObject
+
+ static eventWithName(eventName: string): TikTokAddToWishlistEvent; // inherited from TikTokBaseEvent
+
+ static new(): TikTokAddToWishlistEvent; // inherited from NSObject
+
+ constructor(o: { eventId: string });
+
+ initWithEventId(eventId: string): this;
+}
+
+declare class TikTokBaseEvent extends NSObject {
+ static alloc(): TikTokBaseEvent; // inherited from NSObject
+
+ static eventWithName(eventName: string): TikTokBaseEvent;
+
+ static new(): TikTokBaseEvent; // inherited from NSObject
+
+ eventId: string;
+
+ eventName: string;
+
+ properties: NSDictionary;
+
+ constructor(o: { eventName: string });
+
+ constructor(o: { eventName: string; eventId: string });
+
+ constructor(o: { eventName: string; properties: NSDictionary; eventId: string });
+
+ addPropertyWithKeyValue(key: string, value: any): this;
+
+ initWithEventName(eventName: string): this;
+
+ initWithEventNameEventId(eventName: string, eventId: string): this;
+
+ initWithEventNamePropertiesEventId(eventName: string, properties: NSDictionary, eventId: string): this;
+}
+
+declare class TikTokBusiness extends NSObject {
+ static alloc(): TikTokBusiness; // inherited from NSObject
+
+ static appInBackground(): boolean;
+
+ static appInForeground(): boolean;
+
+ static appIsInactive(): boolean;
+
+ static explicitlyFlush(): void;
+
+ static fetchDeferredDeeplinkWithCompletion(completion: (p1: NSURL, p2: NSError) => void): void;
+
+ static getInstance(): TikTokBusiness;
+
+ static getSDKVersion(): string;
+
+ static getTestEventCode(): string;
+
+ static identifyWithExternalIDExternalUserNamePhoneNumberEmail(externalID: string, externalUserName: string, phoneNumber: string, email: string): void;
+
+ static idfa(): string;
+
+ static initializeSdk(tiktokConfig: TikTokConfig): void;
+
+ static initializeSdkCompletionHandler(tiktokConfig: TikTokConfig, completionHandler: (p1: boolean, p2: NSError) => void): void;
+
+ static isDebugMode(): boolean;
+
+ static isInitialized(): boolean;
+
+ static isLDUMode(): boolean;
+
+ static isTrackingEnabled(): boolean;
+
+ static isUserTrackingEnabled(): boolean;
+
+ static logout(): void;
+
+ static new(): TikTokBusiness; // inherited from NSObject
+
+ static paramForApmConfig(noti: NSNotification): void;
+
+ static produceFatalError(): void;
+
+ static requestTrackingAuthorizationWithCompletionHandler(completion: (p1: number) => void): void;
+
+ static resetInstance(): void;
+
+ static setCustomUserAgent(customUserAgent: string): void;
+
+ static setTrackingEnabled(enabled: boolean): void;
+
+ static trackEvent(eventName: string): void;
+
+ static trackEventWithId(eventName: string, eventId: string): void;
+
+ static trackEventWithProperties(eventName: string, properties: NSDictionary): void;
+
+ static trackEventWithType(eventName: string, type: string): void;
+
+ static trackTTEvent(event: TikTokBaseEvent): void;
+
+ static updateAccessToken(accessToken: string): void;
+
+ accessToken: string;
+
+ anonymousID: string;
+
+ readonly isDebugMode: boolean;
+
+ isGlobalConfigFetched: boolean;
+
+ isRemoteSwitchOn: boolean;
+
+ userTrackingEnabled: boolean;
+}
+
+declare class TikTokBusinessSDKAddress extends NSObject {
+ static alloc(): TikTokBusinessSDKAddress; // inherited from NSObject
+
+ static beginAddress(): number;
+
+ static endAddress(): number;
+
+ static new(): TikTokBusinessSDKAddress; // inherited from NSObject
+}
+
+declare var TikTokBusinessSDKVersionNumber: number;
+
+declare var TikTokBusinessSDKVersionString: interop.Reference;
+
+declare class TikTokCheckoutEvent extends TikTokContentsEvent {
+ static alloc(): TikTokCheckoutEvent; // inherited from NSObject
+
+ static eventWithName(eventName: string): TikTokCheckoutEvent; // inherited from TikTokBaseEvent
+
+ static new(): TikTokCheckoutEvent; // inherited from NSObject
+
+ constructor(o: { eventId: string });
+
+ initWithEventId(eventId: string): this;
+}
+
+declare class TikTokConfig extends NSObject {
+ static alloc(): TikTokConfig; // inherited from NSObject
+
+ static configWithAccessTokenAppIdTiktokAppId(accessToken: string, appId: string, tiktokAppId: string): TikTokConfig;
+
+ static new(): TikTokConfig; // inherited from NSObject
+
+ LDUModeEnabled: boolean;
+
+ SKAdNetworkSupportEnabled: boolean;
+
+ readonly accessToken: string;
+
+ readonly appId: string;
+
+ appTrackingDialogSuppressed: boolean;
+
+ autoEDPEventEnabled: boolean;
+
+ automaticTrackingEnabled: boolean;
+
+ debugModeEnabled: boolean;
+
+ initialFlushDelay: number;
+
+ installTrackingEnabled: boolean;
+
+ isLowPerf: boolean;
+
+ launchTrackingEnabled: boolean;
+
+ paymentTrackingStatus: TikTokPaymentTrackStatus;
+
+ retentionTrackingEnabled: boolean;
+
+ readonly tiktokAppId: string;
+
+ trackingEnabled: boolean;
+
+ constructor(o: { appId: string; tiktokAppId: string });
+
+ disableAppTrackingDialog(): void;
+
+ disableAutoEnhancedDataPostbackEvent(): void;
+
+ disableAutomaticTracking(): void;
+
+ disableInstallTracking(): void;
+
+ disableLaunchTracking(): void;
+
+ disablePaymentTracking(): void;
+
+ disableRetentionTracking(): void;
+
+ disableSKAdNetworkSupport(): void;
+
+ disableTracking(): void;
+
+ enableDebugMode(): void;
+
+ enableLDUMode(): void;
+
+ enablePaymentTracking(): void;
+
+ initWithAppIdTiktokAppId(appId: string, tiktokAppId: string): this;
+
+ setCustomUserAgent(customUserAgent: string): void;
+
+ setDelayForATTUserAuthorizationInSeconds(seconds: number): void;
+
+ setIsLowPerformanceDevice(isLow: boolean): void;
+
+ setLogLevel(logLevel: TikTokLogLevel): void;
+}
+
+declare class TikTokConstants extends NSObject {
+ static alloc(): TikTokConstants; // inherited from NSObject
+
+ static new(): TikTokConstants; // inherited from NSObject
+}
+
+declare class TikTokContentParams extends NSObject {
+ static alloc(): TikTokContentParams; // inherited from NSObject
+
+ static new(): TikTokContentParams; // inherited from NSObject
+
+ brand: string;
+
+ contentCategory: string;
+
+ contentId: string;
+
+ contentName: string;
+
+ price: number;
+
+ quantity: number;
+
+ dictionaryValue(): NSDictionary;
+}
+
+declare class TikTokContentsEvent extends TikTokBaseEvent {
+ static alloc(): TikTokContentsEvent; // inherited from NSObject
+
+ static eventWithName(eventName: string): TikTokContentsEvent; // inherited from TikTokBaseEvent
+
+ static new(): TikTokContentsEvent; // inherited from NSObject
+
+ setContentId(contentId: string): void;
+
+ setContentType(contentType: string): void;
+
+ setContents(contents: NSArray | TikTokContentParams[]): void;
+
+ setCurrency(currency: string): void;
+
+ setDescription(description: string): void;
+
+ setValue(value: string): void;
+}
+
+declare class TikTokDeviceInfo extends NSObject {
+ static alloc(): TikTokDeviceInfo; // inherited from NSObject
+
+ static deviceInfo(): TikTokDeviceInfo;
+
+ static new(): TikTokDeviceInfo; // inherited from NSObject
+
+ appBuild: string;
+
+ appId: string;
+
+ appName: string;
+
+ appNamespace: string;
+
+ appVersion: string;
+
+ clientSdk: string;
+
+ deviceIdForAdvertisers: string;
+
+ deviceName: string;
+
+ devicePlatform: string;
+
+ deviceVendorId: string;
+
+ ipInfo: string;
+
+ localeInfo: string;
+
+ systemVersion: string;
+
+ trackingEnabled: boolean;
+
+ fallbackUserAgent(): string;
+
+ getUserAgent(): string;
+
+ updateIdentifier(): void;
+}
+
+declare const enum TikTokLogLevel {
+ Verbose = 1,
+
+ Debug = 2,
+
+ Info = 3,
+
+ Warn = 4,
+
+ Error = 5,
+
+ Assert = 6,
+
+ Suppress = 7,
+}
+
+declare class TikTokLogger extends NSObject {
+ static alloc(): TikTokLogger; // inherited from NSObject
+
+ static new(): TikTokLogger; // inherited from NSObject
+
+ lockLogLevel(): void;
+
+ setLogLevel(logLevel: TikTokLogLevel): void;
+}
+
+declare const enum TikTokPaymentTrackStatus {
+ default = 0,
+
+ enabled = 1,
+
+ disabled = 2,
+}
+
+declare class TikTokPurchaseEvent extends TikTokContentsEvent {
+ static alloc(): TikTokPurchaseEvent; // inherited from NSObject
+
+ static eventWithName(eventName: string): TikTokPurchaseEvent; // inherited from TikTokBaseEvent
+
+ static new(): TikTokPurchaseEvent; // inherited from NSObject
+
+ constructor(o: { eventId: string });
+
+ initWithEventId(eventId: string): this;
+}
+
+declare class TikTokViewContentEvent extends TikTokContentsEvent {
+ static alloc(): TikTokViewContentEvent; // inherited from NSObject
+
+ static eventWithName(eventName: string): TikTokViewContentEvent; // inherited from TikTokBaseEvent
+
+ static new(): TikTokViewContentEvent; // inherited from NSObject
+
+ constructor(o: { eventId: string });
+
+ initWithEventId(eventId: string): this;
+}
diff --git a/tools/demo/index.ts b/tools/demo/index.ts
index e3535a7..b891573 100644
--- a/tools/demo/index.ts
+++ b/tools/demo/index.ts
@@ -26,6 +26,7 @@ export * from './nativescript-onfido';
export * from './nativescript-persona';
export * from './nativescript-plaid';
export * from './nativescript-qr';
+export * from './nativescript-tiktok';
export * from './nativescript-tracking-transparency';
export * from './nativescript-walletconnect';
export * from './nativescript-web-server';
diff --git a/tools/demo/nativescript-tiktok/index.ts b/tools/demo/nativescript-tiktok/index.ts
new file mode 100644
index 0000000..20aea30
--- /dev/null
+++ b/tools/demo/nativescript-tiktok/index.ts
@@ -0,0 +1,8 @@
+import { DemoSharedBase } from '../utils';
+import {} from '@nstudio/nativescript-tiktok';
+
+export class DemoSharedNativescriptTiktok extends DemoSharedBase {
+ testIt() {
+ console.log('test nativescript-tiktok!');
+ }
+}
diff --git a/tools/workspace-scripts.js b/tools/workspace-scripts.js
index 2b5cbf0..4a433c3 100644
--- a/tools/workspace-scripts.js
+++ b/tools/workspace-scripts.js
@@ -332,6 +332,13 @@ module.exports = {
description: '@nstudio/nativescript-auth0: Build',
},
},
+ // @nstudio/nativescript-tiktok
+ 'nativescript-tiktok': {
+ build: {
+ script: 'nx run nativescript-tiktok:build.all',
+ description: '@nstudio/nativescript-tiktok: Build',
+ },
+ },
'build-all': {
script: 'nx run-many --target=build.all --all',
description: 'Build all packages',
@@ -470,6 +477,10 @@ module.exports = {
script: 'nx run nativescript-auth0:focus',
description: 'Focus on @nstudio/nativescript-auth0',
},
+ 'nativescript-tiktok': {
+ script: 'nx run nativescript-tiktok:focus',
+ description: 'Focus on @nstudio/nativescript-tiktok',
+ },
reset: {
script: 'nx g @nativescript/plugin-tools:focus-packages',
description: 'Reset Focus',
diff --git a/tsconfig.base.json b/tsconfig.base.json
index 91cc895..02e838d 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -54,7 +54,8 @@
"@nstudio/nativescript-walletconnect": ["packages/nativescript-walletconnect/index.d.ts"],
"@nstudio/nativescript-web-server": ["packages/nativescript-web-server/index.d.ts"],
"@nstudio/nativescript-branch": ["packages/nativescript-branch/index.d.ts"],
- "@nstudio/nativescript-auth0": ["packages/nativescript-auth0/index.d.ts"]
+ "@nstudio/nativescript-auth0": ["packages/nativescript-auth0/index.d.ts"],
+ "@nstudio/nativescript-tiktok": ["packages/nativescript-tiktok/index.d.ts"]
}
},
"exclude": ["node_modules", "tmp"]