SDK-API
API zum Setzen des Debug-Modus (setDebug)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Bitte im
AbilityStage(#onCreate)aufrufen.- Bitte vor dem Aufruf von init ausführen.
- Optionales Interface.
Schnittstellendefinition
/**
* Debug-Log-Einstellung, Standardwert: false
*
* @param debug true für Debug, false für Nicht-Debug
*/
setDebug(debug: boolean)
Codebeispiel
EPushInterface.setDebug(true) // Debug aktivieren
Parameterbeschreibung
- Bei
debug = truewerden Logs auf Debug-Level ausgegeben, beifalsenur Logs ab Warning-Level.
EngageLab Appkey konfigurieren (setAppKey)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Bitte im
AbilityStage(#onCreate)aufrufen.- Bitte vor dem Aufruf von init ausführen.
- Muss zwingend aufgerufen werden.
Schnittstellendefinition
/**
* Appkey setzen
*
* @param appKey Appkey der Plattform
*/
setAppKey(appKey: string)
Codebeispiel
EPushInterface.setAppKey("IhrAppKey")
Parameterbeschreibung
appKeymuss aus dem EngageLab-Admin-Panel bezogen werden.
Download-Kanal konfigurieren (setChannel)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
Dynamische Konfiguration des Channels (Download-Kanal der App).
channelgibt den Download-Kanal des App-Pakets an, z. B. Huawei AppGallery. Der Wert ist frei definierbar.
- Bitte im
AbilityStage(#onCreate)aufrufen.- Bitte vor dem Aufruf von init ausführen.
- Muss zwingend aufgerufen werden.
Schnittstellendefinition
/**
* Kanal konfigurieren
*
* @param channel Kanalname
*/
setChannel(channel: string)
Codebeispiel
EPushInterface.setChannel("Kanalname")
Parameterbeschreibung
channelist frei definierbar und dient Ihren eigenen Geschäftszwecken.
Maximale Cache-Anzahl für benutzerdefinierte Nachrichten konfigurieren (setCustomMessageMaxCacheCount)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
Dieses Interface dient dem Caching von EngageLab-Benutzerdefinierten Nachrichten (nicht für Benachrichtigungen). Beispiel: Wenn der Server 100 Nachrichten sendet, aber nur die letzten 10 verarbeitet bzw. gespeichert werden sollen.
- Bitte im
AbilityStage(#onCreate)aufrufen.- Bitte vor dem Aufruf von init ausführen.
Schnittstellendefinition
/**
* Maximale Cache-Anzahl für benutzerdefinierte Backend-Informationen konfigurieren
*
* @param maxCacheCount Anzahl der zu cachenden Einträge
*/
setCustomMessageMaxCacheCount(maxCacheCount: number)
Codebeispiel
EPushInterface.setCustomMessageMaxCacheCount(2)
Parameterbeschreibung
maxCacheCount: Anzahl der zu speichernden Nachrichten.
Steuerung der Anforderung von Benachrichtigungsberechtigungen (setUserRequestNotificationPermission)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
Legt fest, ob die Berechtigungsanfrage für Benachrichtigungen von Ihnen als Entwickler:in oder vom EngageLabSDK durchgeführt wird.
- Bitte im
AbilityStage(#onCreate)aufrufen.- Bitte vor dem Aufruf von init ausführen.
- Optionales Interface.
Schnittstellendefinition
/**
* Festlegen, ob die Berechtigungsanfrage für Benachrichtigungen vom Nutzer selbst ausgelöst wird
* @param applicationContext App-Kontext
* @param enable true: Sie rufen die Berechtigungsanfrage selbst auf, false: SDK ruft die Berechtigungsanfrage auf (Standard)
*/
setUserRequestNotificationPermission(applicationContext: common.ApplicationContext, enable: boolean)
Codebeispiel
// Sie rufen die Berechtigungsanfrage selbst auf
EPushInterface.setUserRequestNotificationPermission(this.context.getApplicationContext(), true)
// SDK ruft die Berechtigungsanfrage auf (Standard)
EPushInterface.setUserRequestNotificationPermission(this.context.getApplicationContext(), false)
Parameterbeschreibung
enable = true: Sie müssen die Berechtigungen selbst anfordern.enable = false: Das EngageLabSDK fordert die Berechtigungen automatisch an (Standard).
Push-Service aktivieren (init)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
Startet den EngageLab Push-Service und beginnt mit der Sammlung der für den SDK-Betrieb notwendigen Nutzerdaten.
- Beim App-Start aufrufen.
Schnittstellendefinition
/**
* Push-Service aktivieren
* @param context Kontext
*/
init(context: common.UIAbilityContext | common.AbilityStageContext)
Codebeispiel
EPushInterface.init(this.context)
Parameterbeschreibung
context: In AbilityStagecommon.AbilityStageContext, in UIAbilitycommon.UIAbilityContext.
Hinweise zur Nutzung
- Mit dem expliziten Aufruf von
initwird der Push-Service aktiviert. - Aus Compliance-Gründen darf der Push-Service erst nach Zustimmung zur Datenschutzerklärung aktiviert werden.
- Hinweise zur Datenschutzerklärung siehe Wie erstellt man eine konforme Datenschutzerklärung?.
RegistrationID abrufen (getRegistrationId)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Erst nach Aufruf von init gültig.
Schnittstellendefinition
/**
* Gibt die registrierte rid zurück
*
*/
getRegistrationId(): string
Codebeispiel
let rid = EPushInterface.getRegistrationId()
Parameterbeschreibung
- Keine.
Token löschen (clearToken)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
Löscht das aktuelle Push-Token des Geräts, um eine Neuregistrierung zu ermöglichen.
- Erst nach Aufruf von init gültig.
Schnittstellendefinition
/**
* Token löschen
*/
clearToken()
Codebeispiel
EPushInterface.clearToken()
Parameterbeschreibung
- Keine.
Callback-Schnittstelle festlegen (setCallBackMsg)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
Diese Schnittstelle empfängt SDK-Daten, etwa Ergebnisse der Registrierung und Anmeldung, Benachrichtigungsklicks sowie Ergebnisse von Tag- und Alias-Operationen. Die empfangende Klasse muss die Schnittstelle CallBackMsg implementieren. Das Codebeispiel zeigt ihre Verwendung.
- Rufen Sie diese Schnittstelle in AbilityStage(#onCreate) auf.
- Rufen Sie diese Schnittstelle vor init auf
- Erforderliche Schnittstelle
Schnittstellendefinition
/**
* Callback-Ereignisse und Daten empfangen
*
* @param callBackMsg
*/
setCallBackMsg(callBackMsg: CallBackMsg)
Codebeispiel
class MyCallBackMsg extends CallBackMsg {
context: common.ApplicationContext
constructor(co: common.ApplicationContext) {
super();
this.context = co
}
/**
* Gibt nach erfolgreicher Registrierung die RID zurück
* @param registrationId Gibt nach erfolgreicher Registrierung die RID zurück
*/
onRegister(registrationId: string): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'onRegister registrationId:' + registrationId);
this.context.eventHub.emit('jPush_event', "registrationId:" + registrationId);
}
/**
* Callback für die Anmeldung über die dauerhafte Verbindung
* @param isConnected true: erfolgreich, false: fehlgeschlagen
*/
onConnected(isConnected: boolean): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'onConnected isConnected:' + isConnected);
this.context.eventHub.emit('jPush_event', "isConnected:" + isConnected);
}
/**
* Callback für Tag-Operationen
* @param eTagMessage
* export class ETagMessage {
* sequence?: number //Vorgangs-ID; muss global eindeutig sein
* code?: number //0: erfolgreich; ETagMessage.CODE_TIME_OUT: Zeitüberschreitung
* op?: string
* tags?: string[] //Zugehörige Daten
* curr?: number //Aktuelle Datenseite; beginnt bei 1
* total?: number //Gesamtzahl der Datenseiten
* msg?: string
* validated?:boolean //checkTagBindState prüft, ob das Tag vorhanden ist
* }
*/
onTagOperatorResult(eTagMessage: ETagMessage): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'onTagOperatorResult ETagMessage:' + JSON.stringify(eTagMessage));
this.context.eventHub.emit('jPush_event', "onTagOperatorResult:" + JSON.stringify(eTagMessage));
}
/**
* Callback für Alias-Operationen
* @param eAliasMessage
* export class EAliasMessage {
* sequence?: number //Vorgangs-ID; muss global eindeutig sein
* code?: number //0: erfolgreich; EAliasMessage.CODE_TIME_OUT: Zeitüberschreitung
* op?: string
* alias?: string //Zugehörige Daten
* curr?: number
* total?: number
* msg?: string
* }
*/
onAliasOperatorResult(eAliasMessage: EAliasMessage): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'onAliasOperatorResult eAliasMessage:' + JSON.stringify(eAliasMessage));
this.context.eventHub.emit('jPush_event', "onAliasOperatorResult:" + JSON.stringify(eAliasMessage));
}
/**
* Callback für Benachrichtigungsklicks
* @param eMessage
*
* export class EMessage {
* msgId?: string //Benachrichtigungs-ID
* title?: string //Benachrichtigungstitel
* content?: string//Benachrichtigungsinhalt
* extras?: Record<string, Object>//Benutzerdefinierte Daten
* channel?: number //Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal(Unterstützt ab EPush HarmonyOS SDK v1.0.0)
* }
*/
onClickMessage(eMessage: EMessage) {
hilog.info(0x0000, 'testTag', '%{public}s', 'onClickMessage eMessage:' + JSON.stringify(eMessage));
this.context.eventHub.emit('jPush_event', "onClickMessage:" + JSON.stringify(eMessage));
}
/**
* Callback für eingegangene Benachrichtigungen (nur über den EngageLab-Kanal; Benachrichtigungen über den HarmonyOS-Systemkanal verarbeitet das Gerät ohne Callback)
* Unterstützt ab EPush HarmonyOS SDK v1.0.0
* @param eMessage
*
* export class EMessage {
* msgId?: string //Benachrichtigungs-ID
* title?: string //Benachrichtigungstitel
* content?: string//Benachrichtigungsinhalt
* extras?: Record<string, Object>//Benutzerdefinierte Daten
* channel?: number //Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal(Hier ist tatsächlich nur der Wert 1 möglich)
* }
*/
onArrivedMessage(eMessage: EMessage) {
hilog.info(0x0000, 'testTag', '%{public}s', 'onArrivedMessage eMessage:' + JSON.stringify(eMessage));
this.context.eventHub.emit('jPush_event', "onArrivedMessage:" + JSON.stringify(eMessage));
}
/**
* Callback bei Unterdrückung einer Benachrichtigung im Vordergrund
* Unterstützt ab EPush HarmonyOS SDK v1.0.0
* @param eMessage
*
* export class EMessage {
* msgId?: string //Benachrichtigungs-ID
* title?: string //Benachrichtigungstitel
* content?: string//Benachrichtigungsinhalt
* extras?: Record<string, Object>//Benutzerdefinierte Daten
* channel?: number //Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal
* }
*/
onUnShowMessage(eMessage: EMessage) {
hilog.info(0x0000, 'testTag', '%{public}s', 'onUnShowMessage eMessage:' + JSON.stringify(eMessage));
this.context.eventHub.emit('jPush_event', "onUnShowMessage:" + JSON.stringify(eMessage));
}
/**
* Callback für benutzerdefinierte Nachrichten
* Callback 1: Nach einem Kaltstart und der SDK-Initialisierung werden bisher nicht gemeldete Nachrichten übergeben.
* Callback 2: Bei laufender App werden Nachrichten direkt übergeben.
* Für Callbacks zu benutzerdefinierten Nachrichten über Herstellerkanäle beachten Sie customMessageBackgroundData oder die Konfiguration benutzerdefinierter Nachrichten in der Integrationsanleitung.
* @param eCustomMessage
*
* export class ECustomMessage {
* msgId?: string //Benachrichtigungs-ID
* title?: string //Benachrichtigungstitel
* content?: string //Benachrichtigungsinhalt
* contentType?: string //Inhaltstyp der Benachrichtigung
* extras?: Record<string, Object> //Benutzerdefinierte Schlüssel-Wert-Paare der Benachrichtigung
* ttl?: number //Ablaufzeit der serverseitig gesendeten Nachricht in Sekunden
* stime?: number //Serverseitiger Sendezeitpunkt in Millisekunden
* channel?: number //Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal(Unterstützt ab EPush HarmonyOS SDK v1.0.0)
* }
*/
onCustomMessage(eCustomMessage: ECustomMessage) {
hilog.info(0x0000, TAG, '%{public}s', 'onCustomMessage eCustomMessage:' + JSON.stringify(eCustomMessage));
this.context.eventHub.emit('jPush_event', "onCustomMessage:" + JSON.stringify(eCustomMessage));
}
/**
* Callback für erweiterte Benachrichtigungsnachrichten
* Für erweiterte Nachrichten über Herstellerkanäle beachten Sie extraMessageBackgroundData, receiveExtraDataMessage oder die Konfiguration erweiterter Benachrichtigungsnachrichten in der Integrationsanleitung.
*
* @param eMessageExtra
*
* export class EMessageExtra {
* msgId?: string //Benachrichtigungs-ID
* title?: string //Benachrichtigungstitel
* content?: string//Benachrichtigungsinhalt
* extras?: Record<string, Object>//Benutzerdefinierte Daten
* extraData?: string//Benutzerdefinierte Daten der erweiterten Benachrichtigungsnachricht
* }
*/
onEMessageExtra(eme: EMessageExtra) {
hilog.info(0x0000, TAG, '%{public}s', 'onEMessageExtra eme:' + JSON.stringify(eme));
this.context.eventHub.emit('jPush_event', "onEMessageExtra:" + JSON.stringify(eme));
}
/**
* Callback für VoIP-Anrufnachrichten
* Für VoIP-Callbacks über Herstellerkanäle beachten Sie voIPMessageBackgroundData oder die Konfiguration von VoIP-Push-Nachrichten in der Integrationsanleitung.
*
* export class EMessageVoIP {
* msgId?: string //Benachrichtigungs-ID
* extraData?: string //Benutzerdefinierte VoIP-Daten
}
* @param jmVoIP
*/
onEMessageVoIP(emVoIP: EMessageVoIP) {
hilog.info(0x0000, TAG, '%{public}s', 'EMessageVoIP emVoIP:' + JSON.stringify(emVoIP));
this.context.eventHub.emit('jPush_event', "EMessageVoIP:" + JSON.stringify(emVoIP));
}
/**
* export class ECmdMessage {
* cmd?: number //Vorgangstyp
* errorCode?: number //Statuscode
* msg?: string //Inhalt
* extra?: Record<string, Object>
* }
* @param cmdMessage
*/
onCommandResult(cmdMessage: ECmdMessage) {
hilog.info(0x0000, TAG, '%{public}s', 'onCommandResult cmdMessage:' + JSON.stringify(cmdMessage));
this.context.eventHub.emit('jPush_event', "onCommandResult:" + JSON.stringify(cmdMessage));
}
}
EPushInterface.setCallBackMsg(new MyCallBackMsg(this.context))
Parameterbeschreibung
- callBackMsg: Klasse zum Empfang von SDK-Callbacks; sie muss die Schnittstelle CallBackMsg implementieren.
Callback-Methoden im Detail
Callback für das Registrierungsergebnis(onRegister)
Callback für das Registrierungsergebnis
Schnittstellendefinition
/**
* Callback für das Registrierungsergebnis
*
* @param registrationId rid
*/
onRegister(registrationId: string)
Callback für den Status der dauerhaften Verbindung(isConnected)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Schnittstellendefinition
/**
* Ob die dauerhafte Verbindung hergestellt wurde
*
* Nach Aktivierung des Push-Dienstes wird eine dauerhafte Verbindung aufgebaut. Diese Methode wird bei Erfolg und Fehlschlag aufgerufen.
*
* @param isConnected Ob die dauerhafte Verbindung hergestellt wurde: true = erfolgreich; false = fehlgeschlagen
*/
onConnected(isConnected: boolean)
Callback für Benachrichtigungsklicks(onClickMessage)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Schnittstellendefinition
/**
* Callback für Benachrichtigungsklicks
export class EMessage {
msgId?: string //Benachrichtigungs-ID
title?: string //Benachrichtigungstitel
content?: string //Benachrichtigungsinhalt
extras?: Record<string, Object> //Benutzerdefinierte Daten
channel?: number //Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal(Unterstützt ab EPush HarmonyOS SDK v1.0.0)
}
*
* @param eMessage
*/
onClickMessage(eMessage: EMessage)
Callback für eingegangene Benachrichtigungen(onArrivedMessage)
Unterstützt ab EPush HarmonyOS SDK v1.0.0 Hinweis: Diese Funktion wird nur für Benachrichtigungen über den EngageLab-Kanal ausgelöst. Benachrichtigungen über den HarmonyOS-Systemkanal verarbeitet das Gerätesystem; ein Callback wird dafür derzeit nicht unterstützt.
Schnittstellendefinition
/**
* Callback für eingegangene Benachrichtigungen
export class EMessage {
msgId?: string //Benachrichtigungs-ID
title?: string //Benachrichtigungstitel
content?: string //Benachrichtigungsinhalt
extras?: Record<string, Object> //Benutzerdefinierte Daten
channel?: number //Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal(Hier ist tatsächlich nur der Wert 1 möglich)
}
*
* @param eMessage
*/
onArrivedMessage(eMessage: EMessage)
Callback für im Vordergrund unterdrückte Benachrichtigungen(onUnShowMessage)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Schnittstellendefinition
/**
* Callback bei Unterdrückung einer Benachrichtigung im Vordergrund
export class EMessage {
msgId?: string //Benachrichtigungs-ID
title?: string //Benachrichtigungstitel
content?: string //Benachrichtigungsinhalt
extras?: Record<string, Object> //Benutzerdefinierte Daten
channel?: number //Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal
}
*
* @param eMessage
*/
onUnShowMessage(eMessage: EMessage)
Callback für Interaktionsereignisse(onCommandResult)
Schnittstellendefinition
/**
* Callback für Interaktionsereignisse
* @param cmdMessage
* export class ECmdMessage {
* public static readonly CMD_TOKEN = 10000 // Callback für die Token-Registrierung(Unterstützt ab EPush HarmonyOS SDK v1.0.0)
*
* cmd?: number //Vorgangsereignis
* errorCode?: number //0 bedeutet Erfolg; andere Werte bedeuten Fehler
* msg?: string //Inhalt
* extra?: Record<string, Object>
* }
*/
onCommandResult(cmdMessage: ECmdMessage);
| cmd | errorCode | msg | DESCRIPTION |
|---|---|---|---|
| 0 | Fehlercode | Fehlermeldung | Registrierung fehlgeschlagen |
| 2006 | 0 | success | Callback für onResume |
| 2007 | 0 | success | Callback für onStop |
| 1000 | 0/1 | success/fail | Token abrufen: 0 = erfolgreich, 1 = fehlgeschlagen |
Callback für benutzerdefinierte Hintergrundnachrichten(onCustomMessage)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Schnittstellendefinition
/**
* Callback für benutzerdefinierte Nachrichten
* Callback 1: Nach einem Kaltstart und der SDK-Initialisierung werden bisher nicht gemeldete Nachrichten übergeben.
* Callback 2: Bei laufender App werden Nachrichten direkt übergeben.
* Beachten Sie zusätzlich die Konfiguration benutzerdefinierter Nachrichten in der Integrationsanleitung.
* @param eCustomMessage
*
* export class ECustomMessage {
* msgId?: string //Benachrichtigungs-ID
* title?: string //Benachrichtigungstitel
* content?: string //Benachrichtigungsinhalt
* contentType?: string //Inhaltstyp der Benachrichtigung
* extras?: Record<string, Object> //Benutzerdefinierte Schlüssel-Wert-Paare der Benachrichtigung
* ttl?: number //Ablaufzeit der serverseitig gesendeten Nachricht in Sekunden
* stime?: number //Serverseitiger Sendezeitpunkt in Millisekunden
* channel?: number //Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal(Unterstützt ab EPush HarmonyOS SDK v1.0.0)
* }
*/
onCustomMessage(eCustomMessage: ECustomMessage);
Callback für erweiterte Benachrichtigungsnachrichten(onEMessageExtra)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Schnittstellendefinition
/**
* Callback für erweiterte Benachrichtigungsnachrichten
* @param eMessageExtra
*
* export class EMessageExtra {
* msgId?: string //Benachrichtigungs-ID
* title?: string //Benachrichtigungstitel
* content?: string//Benachrichtigungsinhalt
* extras?: Record<string, Object>//Benutzerdefinierte Daten
* extraData?: string//Benutzerdefinierte Daten der erweiterten Benachrichtigungsnachricht
* }
*/
onEMessageExtra(eme: EMessageExtra);
Callback für VoIP-Anrufnachrichten(onEMessageVoIP)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Schnittstellendefinition
/**
* Callback für VoIP-Anrufnachrichten
* export class EMessageVoIP {
* msgId?: string //Benachrichtigungs-ID
* extraData?: string //Benutzerdefinierte VoIP-Daten
}
* @param emVoIP
*/
onEMessageVoIP(emVoIP: EMessageVoIP);
Callback für Tag-Operationen(onTagOperatorResult)
Schnittstellendefinition
/**
* Callback für Tag-Operationen
export class ETagMessage {
sequence?: number //Vorgangs-ID; muss global eindeutig sein
code?: number //0: erfolgreich; ETagMessage.CODE_TIME_OUT: Zeitüberschreitung
op?: string
tags?: string[] //Zugehörige Daten
curr?: number //Aktuelle Datenseite; beginnt bei 1
total?: number //Gesamtzahl der Datenseiten
msg?: string
}
*
* @param eTagMessage
*/
onTagOperatorResult(eTagMessage: ETagMessage)
Callback für Alias-Operationen(onAliasOperatorResult)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Schnittstellendefinition
/**
* Callback für Alias-Operationen
export class EAliasMessage {
sequence?: number //Vorgangs-ID; muss global eindeutig sein
code?: number //0: erfolgreich; EAliasMessage.CODE_TIME_OUT: Zeitüberschreitung
op?: string
alias?: string //Zugehörige Daten
curr?: number
total?: number
msg?: string
}
*
* @param eAliasMessage
*/
onAliasOperatorResult(eAliasMessage: EAliasMessage)
Daten beim Öffnen einer Benachrichtigung empfangen (setClickWant)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
Empfängt die zu einem Benachrichtigungsklick gehörenden Daten. Rufen Sie die Methode in onCreate und onNewWant der Ziel-UIAbility auf und übergeben Sie want. Die Daten werden anschließend über onClickMessage der zuvor konfigurierten CallBackMsg-Schnittstelle zurückgegeben.
- Rufen Sie zuerst setAppKey auf, da der Aufruf andernfalls wirkungslos ist
Schnittstellendefinition
/**
* In onCreate und onNewWant der Ziel-UIAbility aufrufen und want sowie context übergeben. Benutzerdefinierte Daten werden über onClickMessage zurückgegeben.
*
* @param want want aus der UIAbility
* @param context Anwendungskontext: this.context in UIAbility, context in AbilityStage
*/
setClickWant(want: Want, context: common.ApplicationContext | common.AbilityStageContext): Promise<EMessage | undefined>
Codebeispiel
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
this.setClickWant(want)
}
onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
super.onNewWant(want, launchParam)
this.setClickWant(want)
}
private async setClickWant(want: Want) {
let j:EMessage|undefined = await EPushInterface.setClickWant(want, this.context);
hilog.info(0x0000, TAG, '%{public}s', 'setClickWant: '+JSON.stringify(j));
}
Parameterbeschreibung
want: das want-Objekt der UIAbility.
context: Anwendungskontext. Übergeben Sie in UIAbility
this.contextund in AbilityStagecontext.return
- Rückgabewert: EMessage bedeutet, dass die Daten erfolgreich verarbeitet wurden und das Datenobjekt zurückgegeben wird. undefined bedeutet, dass keine Daten vorliegen, die Daten nicht von EngageLab stammen oder ein Fehler aufgetreten ist.
Benachrichtigungsstatus abfragen (isPushStopped)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Erst nach Aufruf von init gültig.
Schnittstellendefinition
/**
* Benachrichtigungsstatus abfragen
*
*/
isPushStopped(): boolean | undefined
Codebeispiel
let isPushStopped = EPushInterface.isPushStopped()
Parameterbeschreibung
- Rückgabewert:
true= gestoppt,false= aktiv,undefined= nicht initialisiert oder Fehler.
Push-Dienst deaktivieren (turnOffPush)
Unterstützte Version
Unterstützt ab EPush HarmonyOS SDK v1.0.1.
Funktionsbeschreibung
Diese API deaktiviert den Push-Dienst und unterscheidet sich vom serverseitigen Schalter stopPush. Sie löscht das systemseitige Push Token, verhindert automatische Wiederverbindungen, trennt dauerhafte Verbindungen und stoppt die Erfassung und Übertragung von Clientinformationen. Während der Deaktivierung neu erzeugte Berichtsdaten werden verworfen.
- Wiederholte Aufrufe während einer laufenden Deaktivierung verwenden denselben Vorgang.
- Ein erneuter Aufruf nach vollständiger Deaktivierung gibt sofort Erfolg zurück und löscht das systemseitige Push Token nicht erneut.
turnOffPushundturnOnPushwerden gegenseitig ausgeschlossen. Bei schnellen Wechseln bestimmt die letzte Anforderung den Endzustand.
API-Definition
turnOffPush(context: common.UIAbilityContext | common.AbilityStageContext): Promise<EPushResult>
Codebeispiel
const result = await EPushInterface.turnOffPush(this.context)
console.info(`turnOffPush code: ${result.code}, message: ${result.msg}`)
Parameter
context: AbilityStage- oder UIAbility-Kontext.
Rückgabewert
| code | Beschreibung |
|---|---|
| 0 | Erfolgreich |
| 1 | Das systemseitige Push Token konnte trotz aller Wiederholungen nicht gelöscht werden. Das SDK befindet sich wieder im aktivierten Zustand, baut die dauerhafte Verbindung jedoch nicht automatisch neu auf. Rufen Sie turnOnPush oder init erneut auf |
| 2 | Zeitüberschreitung. Der zugrunde liegende Deaktivierungsvorgang wird fortgesetzt; rufen Sie diese API erneut auf, um das Endergebnis zu bestätigen |
| 3 | Der lokale Deaktivierungszustand des SDK konnte trotz aller Wiederholungen nicht gespeichert werden. Rufen Sie turnOffPush erneut auf |
| 4 | Eine wartende Deaktivierung wurde durch ein späteres turnOnPush verworfen; es wurde keine Deaktivierung ausgeführt. Rufen Sie die API zur Bestätigung erneut auf |
| 5 | AppKey fehlt oder context ist ungültig; es wurde keine Deaktivierung ausgeführt. Korrigieren Sie die Voraussetzung und rufen Sie die API erneut auf |
Push-Dienst erneut aktivieren (turnOnPush)
Unterstützte Version
Unterstützt ab EPush HarmonyOS SDK v1.0.1.
Funktionsbeschreibung
Stellt SDK, dauerhafte Verbindungen sowie Datenerfassung und Übertragung mit dem angegebenen AppKey wieder her und ruft ein neues systemseitiges Push Token ab und lädt es hoch. Die API kehrt sofort zurück und besitzt keinen Ergebnis-Callback. Verbindungs- und Registrierungsergebnisse werden über die vorhandenen Callbacks onConnected und onRegister sowie über Logs gemeldet. Auch ein erneuter Aufruf von init stellt den Dienst wieder her.
- Der Vorgang wird gegenseitig ausgeschlossen mit
turnOffPushausgeführt. Während einer laufenden Deaktivierung wird die Aktivierung eingereiht und nie parallel zum Löschen des systemseitigen Push Tokens ausgeführt.- Eine spätere Anforderung in Gegenrichtung ersetzt einen noch nicht ausgeführten wartenden Vorgang.
- Die RegistrationID bleibt unverändert.
API-Definition
turnOnPush(
context: common.UIAbilityContext | common.AbilityStageContext,
appKey: string
): void
Codebeispiel
EPushInterface.turnOnPush(this.context, "your_app_key")
Parameter
context: AbilityStage- oder UIAbility-Kontext.appKey: zu aktivierender EngageLab AppKey, darf nicht leer sein.
Hinweise zur Verwendung
- Immer verfügbar:
turnOffPush,turnOnPush,init, lokale Konfiguration, Callbacks und Log-Einstellungen. - Vorübergehend nicht verfügbar: RegistrationID-, Token-, Tag-/Alias-, Badge-, Benachrichtigungsstatus-Abfrage- (
isPushStopped) und Nachrichtenstatus-APIs, die Initialisierung, Push-Netzwerk oder Registrierungsidentität benötigen. Aufrufe gebenIt must be init firstzurück. - Nach
turnOnPushoder erneuteminitsind diese APIs wieder verfügbar.
Push-Benachrichtigungen stoppen (stopPush)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Erst nach Aufruf von init gültig.
Schnittstellendefinition
/**
* Push-Benachrichtigungen stoppen
*
*/
stopPush()
Codebeispiel
EPushInterface.stopPush()
Parameterbeschreibung
- Keine.
Push-Benachrichtigungen wieder aufnehmen (resumePush)
Unterstützt ab Version: EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Erst nach Aufruf von init gültig.
Schnittstellendefinition
/**
* Push-Benachrichtigungen wieder aufnehmen
*
*/
resumePush()
Codebeispiel
EPushInterface.resumePush()
Parameterbeschreibung
- Keine.
API für Tags und Aliase
Tags hinzufügen (addTags)
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
- Bei einer ordnungsgemäß eingerichteten Umgebung liefert onTagOperatorResult das Ergebnis per Callback
Schnittstellendefinition
/**
* Fügt die angegebenen Tags hinzu; vorhandene Tags bleiben bestehen
*
* @param sequence Benutzerdefinierte eindeutige Sequenznummer, die mit dem Ergebnis zurückgegeben wird
* @param tags Tag-Array: höchstens 40 Byte pro Tag, 1000 Tags und insgesamt 5000 Byte pro Vorgang
*/
addTags(sequence: number, tags: string[])
Codebeispiel
EPushInterface.addTags(this.sequence++, ["ccc", "ddddd"])
Parameterbeschreibung
- sequence
- Benutzerdefinierte Sequenznummer, die mit dem Ergebnis zurückgegeben wird und den Vorgang eindeutig identifiziert.
- tags
- Geben Sie pro Aufruf mindestens ein Tag an.
- Gültige Zeichen für Tags: Buchstaben (Groß-/Kleinschreibung beachten), Ziffern, Unterstriche, chinesische Zeichen und die Sonderzeichen @!#$&*+=.|.
- Grenzen: 40 Byte pro Tag und höchstens 1000 Tags. Die Gesamtlänge eines Vorgangs darf 5000 Byte nicht überschreiten. Berechnen Sie die Länge mit UTF-8-Kodierung. Pro Gerät werden höchstens 1000 Tags unterstützt. Die Gesamtzahl der Tags einer App ist nicht begrenzt.
Tags löschen (deleteTags)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
- Bei einer ordnungsgemäß eingerichteten Umgebung liefert onTagOperatorResult das Ergebnis per Callback
Schnittstellendefinition
/**
* Löscht die angegebenen Tags
*
* @param sequence Benutzerdefinierte eindeutige Sequenznummer, die mit dem Ergebnis zurückgegeben wird
* @param tags Tag-Array: höchstens 40 Byte pro Tag, 1000 Tags und insgesamt 5000 Byte pro Vorgang
*/
deleteTags(sequence: number, tags: string[])
Codebeispiel
EPushInterface.deleteTags(this.sequence++, ["ccc"])
Parameterbeschreibung
- sequence
- Benutzerdefinierte Sequenznummer, die mit dem Ergebnis zurückgegeben wird und den Vorgang eindeutig identifiziert.
- tags
- Löschen Sie pro Aufruf mindestens ein Tag.
- Gültige Zeichen für Tags: Buchstaben (Groß-/Kleinschreibung beachten), Ziffern, Unterstriche, chinesische Zeichen und die Sonderzeichen @!#$&*+=.|.
- Grenzen: 40 Byte pro Tag und höchstens 1000 Tags. Die Gesamtlänge eines Vorgangs darf 5000 Byte nicht überschreiten. Berechnen Sie die Länge mit UTF-8-Kodierung. Pro Gerät werden höchstens 1000 Tags unterstützt. Die Gesamtzahl der Tags einer App ist nicht begrenzt.
Tags setzen (setTags)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
- Bei einer ordnungsgemäß eingerichteten Umgebung liefert onTagOperatorResult das Ergebnis per Callback
Schnittstellendefinition
/**
* Ersetzt die Tags; zuvor hinzugefügte Tags werden gelöscht
*
* @param sequence Benutzerdefinierte eindeutige Sequenznummer, die mit dem Ergebnis zurückgegeben wird
* @param tags Tag-Array: höchstens 40 Byte pro Tag, 1000 Tags und insgesamt 5000 Byte pro Vorgang
*/
setTags(sequence: number, tags: string[])
Codebeispiel
EPushInterface.setTags(this.sequence++, ["xxx", "yyy"])
Parameterbeschreibung
- sequence
- Benutzerdefinierte Sequenznummer, die mit dem Ergebnis zurückgegeben wird und den Vorgang eindeutig identifiziert.
- tags
- Geben Sie pro Aufruf mindestens ein Tag an.
- Gültige Zeichen für Tags: Buchstaben (Groß-/Kleinschreibung beachten), Ziffern, Unterstriche, chinesische Zeichen und die Sonderzeichen @!#$&*+=.|.
- Grenzen: 40 Byte pro Tag und höchstens 1000 Tags. Die Gesamtlänge eines Vorgangs darf 5000 Byte nicht überschreiten. Berechnen Sie die Länge mit UTF-8-Kodierung. Pro Gerät werden höchstens 1000 Tags unterstützt. Die Gesamtzahl der Tags einer App ist nicht begrenzt.
Bindungsstatus eines Tags abfragen (checkTagBindState)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
- Bei einer ordnungsgemäß eingerichteten Umgebung liefert onTagOperatorResult das Ergebnis per Callback
Schnittstellendefinition
/**
* Fragt das angegebene Tag ab
*
* @param sequence Benutzerdefinierte eindeutige Sequenznummer, die mit dem Ergebnis zurückgegeben wird
* @param tag Tag, höchstens 40 Byte lang
*/
checkTagBindState(sequence: number, tag: string)
Codebeispiel
EPushInterface.checkTagBindState(this.sequence++, "ccc")
Parameterbeschreibung
- sequence
- Benutzerdefinierte Sequenznummer, die mit dem Ergebnis zurückgegeben wird und den Vorgang eindeutig identifiziert.
- tags
- Das abzufragende Tag.
Alle Tags löschen (cleanTags)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
- Bei einer ordnungsgemäß eingerichteten Umgebung liefert onTagOperatorResult das Ergebnis per Callback
Schnittstellendefinition
/**
* Löscht alle Tags
*
* @param sequence Benutzerdefinierte eindeutige Sequenznummer, die mit dem Ergebnis zurückgegeben wird
*/
cleanTags(sequence: number)
Codebeispiel
EPushInterface.cleanTags(this.sequence++)
Parameterbeschreibung
- sequence
- Benutzerdefinierte Sequenznummer, die mit dem Ergebnis zurückgegeben wird und den Vorgang eindeutig identifiziert.
Alle Tags abfragen (getTags)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
- Bei einer ordnungsgemäß eingerichteten Umgebung liefert onTagOperatorResult das Ergebnis per Callback
Schnittstellendefinition
/**
* Fragt alle Tags ab
*
* @param sequence Benutzerdefinierte eindeutige Sequenznummer, die mit dem Ergebnis zurückgegeben wird
* @param curr Abzufragende Seite; beginnt bei 1
*/
getTags(sequence: number, curr: number)
Codebeispiel
EPushInterface.getTags(this.sequence++, 1)
Parameterbeschreibung
- sequence
- Benutzerdefinierte Sequenznummer, die mit dem Ergebnis zurückgegeben wird und den Vorgang eindeutig identifiziert.
Alias setzen (setAlias)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
- Bei einer ordnungsgemäß eingerichteten Umgebung liefert onAliasOperatorResult das Ergebnis per Callback
Schnittstellendefinition
/**
* Alias setzen
*
* Verwenden Sie innerhalb einer App unterschiedliche Aliase für unterschiedliche Nutzer, um sie möglichst eindeutig identifizieren zu können.
*
* Ein Alias ist nicht auf einen einzigen Nutzer beschränkt
*
* @param sequence Benutzerdefinierte eindeutige Sequenznummer, die mit dem Ergebnis zurückgegeben wird
* @param alias Gültige Zeichen: Buchstaben (Groß-/Kleinschreibung beachten), Ziffern, Unterstriche, chinesische Zeichen und @!#$&*+=.|. Höchstens 40 Byte in UTF-8.
*
*/
setAlias(sequence: number, alias: string)
Codebeispiel
EPushInterface.setAlias(this.sequence++, "gggdd")
Parameterbeschreibung
- sequence
- Benutzerdefinierte Sequenznummer, die mit dem Ergebnis zurückgegeben wird und den Vorgang eindeutig identifiziert. Verwenden Sie möglichst für jeden Aufruf eine andere Nummer.
- alias
- Jeder Aufruf setzt einen gültigen Alias und überschreibt die vorherige Einstellung.
- Gültige Zeichen für Aliase: Buchstaben (Groß-/Kleinschreibung beachten), Ziffern, Unterstriche, chinesische Zeichen und die Sonderzeichen @!#$&*+=.|.
- Der Alias darf höchstens 40 Byte lang sein, berechnet mit UTF-8-Kodierung.
Alias abfragen (getAlias)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
- Bei einer ordnungsgemäß eingerichteten Umgebung liefert onAliasOperatorResult das Ergebnis per Callback
Schnittstellendefinition
/**
* Alias abrufen
*
* Verwenden Sie innerhalb einer App unterschiedliche Aliase für unterschiedliche Nutzer, um sie möglichst eindeutig identifizieren zu können.
*
* Ein Alias ist nicht auf einen einzigen Nutzer beschränkt
*
* @param sequence Benutzerdefinierte eindeutige Sequenznummer, die mit dem Ergebnis zurückgegeben wird
*/
getAlias(sequence: number)
Codebeispiel
EPushInterface.getAlias(this.sequence++)
Parameterbeschreibung
- sequence
- Benutzerdefinierte Sequenznummer, die mit dem Ergebnis zurückgegeben wird und den Vorgang eindeutig identifiziert. Verwenden Sie möglichst für jeden Aufruf eine andere Nummer.
Alias löschen (deleteAlias)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
- Bei einer ordnungsgemäß eingerichteten Umgebung liefert onAliasOperatorResult das Ergebnis per Callback
Schnittstellendefinition
/**
* Alias löschen
*
* Verwenden Sie innerhalb einer App unterschiedliche Aliase für unterschiedliche Nutzer, um sie möglichst eindeutig identifizieren zu können.
*
* Ein Alias ist nicht auf einen einzigen Nutzer beschränkt
*
* @param sequence Benutzerdefinierte eindeutige Sequenznummer, die mit dem Ergebnis zurückgegeben wird
*/
deleteAlias(sequence: number)
Codebeispiel
EPushInterface.deleteAlias(this.sequence++)
Parameterbeschreibung
- sequence
- Benutzerdefinierte Sequenznummer, die mit dem Ergebnis zurückgegeben wird und den Vorgang eindeutig identifiziert. Verwenden Sie möglichst für jeden Aufruf eine andere Nummer.
TCP SSL konfigurieren (setTcpSSl)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
Legt fest, ob die TCP-Verbindung mit SSL verschlüsselt wird.
- Rufen Sie diese Schnittstelle vor init auf
- Optionale Schnittstelle
Schnittstellendefinition
/**
* TCP SSL konfigurieren
* @param b true: SSL-Verschlüsselung verwenden; false: keine SSL-Verschlüsselung
*/
setTcpSSl(b: boolean)
Codebeispiel
EPushInterface.setTcpSSl(true) // SSL-Verschlüsselung aktivieren
Parameterbeschreibung
- b: true aktiviert die SSL-Verschlüsselung der TCP-Verbindung; false deaktiviert sie.
Heartbeat-Intervall festlegen (setHeartbeatTime)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
Legt das Heartbeat-Intervall fest, um die dauerhafte Verbindung aktiv zu halten.
- Optionale Schnittstelle
Schnittstellendefinition
/**
* Heartbeat-Intervall der dauerhaften Verbindung festlegen
* @param heartbeatTime Sekunden, Bereich [30,290]
*/
setHeartbeatTime(heartbeatTime: number)
Codebeispiel
EPushInterface.setHeartbeatTime(60) // Heartbeat-Intervall auf 60 Sekunden setzen
Parameterbeschreibung
- heartbeatTime: Heartbeat-Intervall in Sekunden, von 30 bis 290.
Badge-Wert festlegen (setBadgeNumber)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
Schnittstellendefinition
/**
* Badge-Wert festlegen
*
* @param badgeNumber Badge-Wert
*/
setBadgeNumber(badgeNumber: number)
Codebeispiel
EPushInterface.setBadgeNumber(0)
Parameterbeschreibung
- badgeNumber
- Badge-Wert
Benutzerdefinierte Nachrichten empfangen (customMessageBackgroundData)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Diese Funktion verarbeitet nur benutzerdefinierte Nachrichten, die über HarmonyOS zugestellt werden. Befolgen Sie bei deren Verwendung die Integrationsanleitung: Benutzerdefinierte Nachrichten konfigurieren.
Schnittstellendefinition
/**
* Integration benutzerdefinierter Nachrichten
* Benutzerdefinierte Hintergrundnachrichten empfangen
* @param data BACKGROUND-Nachricht
*/
customMessageBackgroundData(data: pushCommon.PushPayload): Promise<boolean>
Codebeispiel
import { UIAbility } from '@kit.AbilityKit';
import { EPushInterface } from '@engagelab/push';
import { pushCommon, pushService } from '@kit.PushKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
const TAG: string = 'ENGAGELAB-JLog-PushMessageAbility'
export default class PushMessageAbility extends UIAbility {
onCreate(): void {
try { // receiveMessage muss BACKGROUND-Daten enthalten: benutzerdefinierte Hintergrundnachrichten
pushService.receiveMessage('BACKGROUND', this, async (data: pushCommon.PushPayload) => {
let jg = await EPushInterface.customMessageBackgroundData(data)
if (jg) { //true bedeutet, dass die Verarbeitung abgeschlossen ist
return
}
});
} catch (e) {
hilog.info(0x0000, TAG, '%{public}s', 'BACKGROUND fail:'+JSON.stringify(e));
}
}
Parameterbeschreibung
- data
- Der Parameter von receiveMessage muss BACKGROUND-Daten enthalten, also Hintergrunddaten.
- return
- Rückgabewert: true bei erfolgreicher Verarbeitung; false, wenn die Daten nicht von EngageLab stammen oder ein Fehler aufgetreten ist.
VoIP-Anrufnachrichten empfangen (voIPMessageBackgroundData)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Diese Funktion verarbeitet nur VoIP-Anrufnachrichten, die über HarmonyOS zugestellt werden. Befolgen Sie bei deren Verwendung die Integrationsanleitung: Push von VoIP-Anrufnachrichten konfigurieren.
Schnittstellendefinition
/**
* Integration von VoIP-Anrufnachrichten
* VoIP-Anrufnachrichten empfangen
* @param data VoIP-Nachricht
*/
voIPMessageBackgroundData(data: pushCommon.PushPayload): Promise<boolean>
Codebeispiel
import { UIAbility } from '@kit.AbilityKit';
import { EPushInterface } from '@engagelab/push';
import { pushCommon, pushService } from '@kit.PushKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
const TAG: string = 'ENGAGELAB-JLog-PushMessageAbility'
export default class PushMessageAbility extends UIAbility {
onCreate(): void {
try {
pushService.receiveMessage('VoIP', this, async (data) => {
let jg = await EPushInterface.voIPMessageBackgroundData(data)
if (jg) { //true bedeutet, dass die Verarbeitung abgeschlossen ist
return
}
});
} catch (e) {
hilog.info(0x0000, TAG, '%{public}s', 'VoIP fail:'+JSON.stringify(e));
}
}
}
Parameterbeschreibung
- data
- Der Parameter von receiveMessage muss VoIP-Daten enthalten, also VoIP-Anrufnachrichten.
- return
- Rückgabewert: true bei erfolgreicher Verarbeitung; false, wenn die Daten nicht von EngageLab stammen oder ein Fehler aufgetreten ist.
Erweiterte Benachrichtigungsnachrichten bei laufendem Prozess empfangen (extraMessageBackgroundData)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Diese Funktion verarbeitet nur erweiterte Benachrichtigungsnachrichten, die über HarmonyOS zugestellt werden. Befolgen Sie bei deren Verwendung die Integrationsanleitung: Erweiterte Benachrichtigungsnachrichten konfigurieren.
Schnittstellendefinition
/**
* Integration erweiterter Benachrichtigungsnachrichten
* Erweiterte Benachrichtigungsnachrichten empfangen
* @param data IM-Nachricht
*/
extraMessageBackgroundData(data: pushCommon.PushPayload): Promise<boolean>
Codebeispiel
import { UIAbility } from '@kit.AbilityKit';
import { EPushInterface } from '@engagelab/push';
import { pushCommon, pushService } from '@kit.PushKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
const TAG: string = 'ENGAGELAB-JLog-PushMessageAbility'
export default class PushMessageAbility extends UIAbility {
onCreate(): void {
try { // receiveMessage muss IM-Daten enthalten: erweiterte Benachrichtigungsnachrichten
pushService.receiveMessage('IM', this, async (data) => {
let jg = await EPushInterface.extraMessageBackgroundData(data)
if (jg) { //true bedeutet, dass die Verarbeitung abgeschlossen ist
return
}
});
} catch (e) {
hilog.info(0x0000, TAG, '%{public}s', 'IM fail:'+JSON.stringify(e));
}
}
Parameterbeschreibung
- data
- Der Parameter von receiveMessage muss IM-Daten enthalten, also erweiterte Benachrichtigungsnachrichten.
- return
- Rückgabewert: true bei erfolgreicher Verarbeitung; false, wenn die Daten nicht von EngageLab stammen oder ein Fehler aufgetreten ist.
Erweiterte Benachrichtigungsnachrichten ohne laufenden Prozess empfangen (receiveExtraDataMessage)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Diese Funktion verarbeitet nur erweiterte Benachrichtigungsnachrichten, die über HarmonyOS zugestellt werden. Befolgen Sie bei deren Verwendung die Integrationsanleitung: Erweiterte Benachrichtigungsnachrichten konfigurieren.
Schnittstellendefinition
/**
* Integration erweiterter Benachrichtigungsnachrichten
* Erweiterte Benachrichtigungsnachrichten empfangen
* @param rNEAbility Zugehörige RemoteNotificationExtensionAbility
* @param data Daten von onReceiveMessage
*/
receiveExtraDataMessage(rNEAbility: RemoteNotificationExtensionAbility, remoteNotificationInfo: pushCommon.RemoteNotificationInfo): Promise<EMessageExtra | undefined>
Codebeispiel
import { pushCommon, RemoteNotificationExtensionAbility } from '@kit.PushKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { EPushInterface } from '@engagelab/push';
const TAG: string = 'ENGAGELAB-JLog-RemoteNotificationExtAbility'
export default class RemoteNotificationExtAbility extends RemoteNotificationExtensionAbility {
async onReceiveMessage(remoteNotificationInfo: pushCommon.RemoteNotificationInfo): Promise<pushCommon.RemoteNotificationContent> {
hilog.info(0x0000, TAG, 'onReceiveMessage, remoteNotificationInfo: %{public}s',
JSON.stringify(remoteNotificationInfo));
let eMessageExtra = await EPushInterface.receiveExtraDataMessage(this, remoteNotificationInfo);
hilog.info(0x0000, TAG, 'onReceiveMessage eMessageExtra:' + JSON.stringify(eMessageExtra));
// Return the replaced message content.
return {}//Zum Ändern der Benachrichtigung können Daten zurückgegeben werden
}
onDestroy(): void {
hilog.info(0x0000, TAG, 'RemoteNotificationExtAbility onDestroy.');
}
}
Parameterbeschreibung
- rNEAbility
- Die zugehörige RemoteNotificationExtensionAbility.
- data
- Parameterdaten des Callbacks onReceiveMessage, also die erweiterte Benachrichtigungsnachricht.
- return
- Rückgabewert: EMessageExtra bedeutet, dass die Daten erfolgreich verarbeitet wurden und das Datenobjekt zurückgegeben wird. undefined bedeutet, dass die Daten nicht von EngageLab stammen oder ein Fehler aufgetreten ist.
Benachrichtigungen im Vordergrund unterdrücken (defaultMessageBackgroundData)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Integrieren Sie diese Funktion, wenn Benachrichtigungen im Vordergrund nicht angezeigt werden sollen. Andernfalls wird bei Zustellung über den HarmonyOS-Kanal der Callback onUnShowMessage nicht ausgelöst. Weitere Informationen finden Sie in der Integrationsanleitung: Benachrichtigungen im Vordergrund unterdrücken.
Schnittstellendefinition
/**
* Integration der Unterdrückung im Vordergrund
* Daten für die Unterdrückung im Vordergrund empfangen
* @param data Nachrichtendaten für die Unterdrückung im Vordergrund
*/
defaultMessageBackgroundData(data: pushCommon.PushPayload): Promise<boolean>
Codebeispiel
import { UIAbility } from '@kit.AbilityKit';
import { EPushInterface } from '@engagelab/push';
import { pushCommon, pushService } from '@kit.PushKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
const TAG: string = 'ENGAGELAB-JLog-PushMessageAbility'
export default class PushMessageAbility extends UIAbility {
onCreate(): void {
try {
pushService.receiveMessage('DEFAULT', this, async (data: pushCommon.PushPayload) => {
let jg = await EPushInterface.defaultMessageBackgroundData(data)
if (jg) { //true bedeutet, dass die Verarbeitung abgeschlossen ist
return
}
});
} catch (e) {
hilog.info(0x0000, TAG, '%{public}s', 'DEFAULT fail:'+JSON.stringify(e));
}
}
}
Parameterbeschreibung
- data
- Der Parameter von receiveMessage muss DEFAULT-Daten enthalten, also Daten für im Vordergrund unterdrückte Nachrichten.
- return
- Rückgabewert: true bei erfolgreicher Verarbeitung; false, wenn die Daten nicht von EngageLab stammen oder ein Fehler aufgetreten ist.
Benachrichtigung anhand der Benachrichtigungs-ID löschen (clearNotification)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Löscht die angegebene Benachrichtigung anhand ihrer Benachrichtigungs-ID.
- Nur bereits angezeigte Benachrichtigungen können gelöscht werden.
Schnittstellendefinition
/**
* Benachrichtigung anhand der Benachrichtigungs-ID löschen
* @param id Benachrichtigungs-ID
*/
clearNotification(id: number)
Codebeispiel
EPushInterface.clearNotification(notificationId)
Parameterbeschreibung
- id: Benachrichtigungs-ID der zu löschenden Benachrichtigung.
Benachrichtigung anhand der Nachrichten-ID löschen (clearNotificationByMsgId)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Löscht die angegebene Benachrichtigung anhand ihrer Nachrichten-ID.
- Nur bereits angezeigte Benachrichtigungen können gelöscht werden.
Schnittstellendefinition
/**
* Benachrichtigung anhand der Nachrichten-ID löschen
* @param msgId Nachrichten-ID
*/
clearNotificationByMsgId(msgId: string)
Codebeispiel
EPushInterface.clearNotificationByMsgId("your_message_id")
Parameterbeschreibung
- msgId: Nachrichten-ID der zu löschenden Benachrichtigung.
Alle Benachrichtigungen löschen (clearNotificationAll)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Löscht alle von EngageLab angezeigten Benachrichtigungen.
Schnittstellendefinition
/**
* Alle Benachrichtigungen löschen
*/
clearNotificationAll()
Codebeispiel
EPushInterface.clearNotificationAll()
Parameterbeschreibung
- Keine.
API zur Meldung des Nachrichtenstatus
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Anzeige einer benutzerdefinierten Nachricht melden (reportCustomDisplay)
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
Schnittstellendefinition
/**
* Anzeige einer benutzerdefinierten Nachricht melden
* @param channel Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal
* @param msgId Nachrichten-ID
*/
reportCustomDisplay(channel: number, msgId: string)
Codebeispiel
EPushInterface.reportCustomDisplay(eCustomMessage.channel, eCustomMessage.msgId as string)
Parameterbeschreibung
- channel: Herkunftskanal der Daten
0: Herstellerkanal1: EngageLab-Kanal
- msgId: Nachrichten-ID
Klick auf eine benutzerdefinierte Nachricht melden (reportCustomClick)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
Schnittstellendefinition
/**
* Klick auf eine benutzerdefinierte Nachricht melden
* @param channel Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal
* @param msgId Nachrichten-ID
*/
reportCustomClick(channel: number, msgId: string)
Codebeispiel
EPushInterface.reportCustomClick(eCustomMessage.channel, eCustomMessage.msgId as string)
Parameterbeschreibung
- channel: Herkunftskanal der Daten
0: Herstellerkanal1: EngageLab-Kanal
- msgId: Nachrichten-ID
Anzeige einer Benachrichtigung melden (reportNotificationDisplay)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
Schnittstellendefinition
/**
* Anzeige einer Benachrichtigung melden
* @param channel Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal
* @param msgId Nachrichten-ID
*/
reportNotificationDisplay(channel: number, msgId: string)
Codebeispiel
EPushInterface.reportNotificationDisplay(eMessage.channel, eMessage.msgId as string)
Parameterbeschreibung
- channel: Herkunftskanal der Daten
0: Herstellerkanal1: EngageLab-Kanal
- msgId: Nachrichten-ID
Klick auf eine Benachrichtigung melden (reportNotificationClick)
Unterstützt ab EPush HarmonyOS SDK v1.0.0
Funktionsbeschreibung
- Rufen Sie zuerst init auf, da der Aufruf andernfalls wirkungslos ist
Schnittstellendefinition
/**
* Klick auf eine Benachrichtigung melden
* @param channel Herkunftskanal: 0 = Herstellerkanal, 1 = EngageLab-Kanal
* @param msgId Nachrichten-ID
*/
reportNotificationClick(channel: number, msgId: string)
Codebeispiel
EPushInterface.reportNotificationClick(eMessage.channel, eMessage.msgId as string)
Parameterbeschreibung
- channel: Herkunftskanal der Daten
0: Herstellerkanal1: EngageLab-Kanal
- msgId: Nachrichten-ID










