Compare commits

..
Author SHA1 Message Date
Daniel Sogl bab45a14d7 feat(tealium): add missing v2.5.0 APIs and remote command params
Add gatherTrackData, handleDeepLink, resetVisitorId, clearStoredVisitorIds,
setVisitorIdListener, extend addRemoteCommand with path/url, add RemoteCommand
interface, and add missing TealiumConfig fields (overrideCollectProfile,
remoteCommands, sessionCountingEnabled, batchingEnabled).
2026-07-27 22:12:59 +02:00
2 changed files with 81 additions and 22 deletions
@@ -18,12 +18,6 @@ export interface SmsOptionsAndroid {
* Set to "INTENT" to send SMS with the native android SMS messaging. Leaving it empty will send the SMS without opening any app.
*/
intent?: string;
/**
* Selects which SIM to use on dual-SIM devices when sending with no intent. Use "0" for the primary SIM slot and "1" for the secondary SIM slot.
* If no slot is specified the default SIM slot will be used.
*/
slot?: string;
}
/**
@@ -84,16 +78,4 @@ export class SMS extends AwesomeCordovaNativePlugin {
hasPermission(): Promise<boolean> {
return;
}
/**
* Requests permission to send SMS (Android Marshmallow and later)
*
* @returns {Promise<boolean>} returns a promise that resolves with a boolean that indicates if permission was granted
*/
@Cordova({
platforms: ['Android'],
})
requestPermission(): Promise<boolean> {
return;
}
}
@@ -41,7 +41,10 @@ export interface TealiumDispatch {
export class TealiumView implements TealiumDispatch {
public type = 'view';
constructor(public viewName: string, public dataLayer: Map<string, any>) {}
constructor(
public viewName: string,
public dataLayer: Map<string, any>
) {}
toJson() {
const dictionary: any = {};
dictionary['type'] = this.type;
@@ -57,7 +60,10 @@ export class TealiumView implements TealiumDispatch {
export class TealiumEvent implements TealiumDispatch {
public type = 'event';
constructor(public eventName: string, public dataLayer: Map<string, any>) {}
constructor(
public eventName: string,
public dataLayer: Map<string, any>
) {}
toJson() {
const dictionary: any = {};
dictionary['type'] = this.type;
@@ -72,7 +78,21 @@ export class TealiumEvent implements TealiumDispatch {
}
export class ConsentExpiry {
constructor(public time: number, public unit: TimeUnit) {}
constructor(
public time: number,
public unit: TimeUnit
) {}
}
export interface RemoteCommand {
/** The ID used to invoke the remote command */
id: string;
/** Path to a local JSON file mapping, relative to the app bundle */
path?: string;
/** URL to a remote JSON file mapping */
url?: string;
/** Callback invoked when the remote command is triggered */
callback?: Function;
}
export enum TimeUnit {
@@ -130,6 +150,7 @@ export interface TealiumConfig {
memoryReportingEnabled?: boolean;
overrideCollectURL?: string;
overrideCollectBatchURL?: string;
overrideCollectProfile?: string;
overrideCollectDomain?: string;
overrideLibrarySettingsURL?: string;
overrideTagManagementURL?: string;
@@ -143,6 +164,12 @@ export interface TealiumConfig {
useRemoteLibrarySettings?: boolean;
visitorServiceEnabled?: boolean;
visitorServiceRefreshInterval?: string;
/** Remote commands to register automatically on initialize */
remoteCommands?: RemoteCommand[];
/** Whether session counting is enabled */
sessionCountingEnabled?: boolean;
/** Whether dispatch batching is enabled */
batchingEnabled?: boolean;
}
/**
@@ -251,6 +278,16 @@ export class Tealium extends AwesomeCordovaNativePlugin {
return;
}
/**
* Gathers the current track data (data layer merged with library data) without dispatching a track call
* @param callback
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
@Cordova()
gatherTrackData(callback?: Function): Promise<any> {
return;
}
/**
* Retrieves the user's consent status
* @param callback
@@ -310,6 +347,16 @@ export class Tealium extends AwesomeCordovaNativePlugin {
return;
}
/**
* Passes a deep link URI to the Tealium library for tracking
* @param uri The deep link URI
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
@Cordova()
handleDeepLink(uri: string): Promise<any> {
return;
}
/**
* Retrieves the Tealium Visitor ID
* @param callback
@@ -320,6 +367,24 @@ export class Tealium extends AwesomeCordovaNativePlugin {
return;
}
/**
* Resets the Tealium Visitor ID, generating a new one
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
@Cordova()
resetVisitorId(): Promise<any> {
return;
}
/**
* Clears all previously-stored visitor IDs
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
@Cordova()
clearStoredVisitorIds(): Promise<any> {
return;
}
/**
* Sets a listener to be called when the AudienceStream visitor profile is updated
* @param callback
@@ -330,6 +395,16 @@ export class Tealium extends AwesomeCordovaNativePlugin {
return;
}
/**
* Sets a listener to be called when the Visitor ID changes
* @param callback
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
@Cordova()
setVisitorIdListener(callback?: Function): Promise<any> {
return;
}
/**
* Sets a listener to be called when the consent has expired
* @param callback
@@ -344,10 +419,12 @@ export class Tealium extends AwesomeCordovaNativePlugin {
* Adds a remote command for later execution
* @param id The ID used to invoke the remote command
* @param callback
* @param path Path to a local JSON file mapping, relative to the app bundle
* @param url URL to a remote JSON file mapping
* @return {Promise<any>} Returns a promise that resolves when something happens
*/
@Cordova()
addRemoteCommand(id: string, callback?: Function): Promise<any> {
addRemoteCommand(id: string, callback?: Function, path?: string, url?: string): Promise<any> {
return;
}