Push-Benachrichtigungen
Stellen Sie Mitarbeiterantworten und Kampagnen zu, während die App geschlossen ist — mit einem Deep Link direkt in die richtige Konversation. Ihre App besitzt das Push-Subsystem; das SDK registriert Tokens und öffnet Konversationen.
Was Respondo sendet#
- Nachrichten-Pushes — eine Mitarbeiter- oder KI-Antwort in einer Konversation, an der der Besucher beteiligt ist.
- Kampagnen-Pushes — ausgehende Push-Kampagnen, die außerdem ein Open-Beacon melden.
Nachrichten-Pushes tragen immer einen Deep Link der Form respondo://conversation/<id>. Kampagnen-Pushes tragen den auf der Kampagne konfigurierten Deep Link — er ist optional; ist er nicht gesetzt, enthält der Push keinen Deep Link.
Apple (APNs)#
iOS-Push läuft direkt über APNs — keine Firebase-Abhängigkeit. Beschaffen Sie aus Ihrem Apple-Developer-Konto:
- Einen APNs Auth Key (
.p8Token-Key). - Die Key ID dieses Keys.
- Ihre Team ID.
- Die Bundle ID der App.
Google (FCM)#
Android-Push läuft über Firebase Cloud Messaging. Beschaffen Sie aus Ihrem Firebase-Projekt:
- Ein Service-Account-JSON mit der Cloud-Messaging-Rolle.
- Die Firebase-Projekt-ID (Firebase-Konsole → Projekteinstellungen) — wird im Push-Formular des Dashboards als eigenes Feld neben dem Service-Account-JSON eingetragen.
- Den Package-Namen der Android-App, und verbinden Sie die App mit demselben Firebase-Projekt (
google-services.json).
In Respondo konfigurieren#
Fügen Sie den APNs-Key und den FCM-Service-Account mit seiner Projekt-ID zu Ihrem Widget-Kanal im Dashboard hinzu. Mehr braucht Respondo nicht, um an beide Plattformen zu senden.
Payload-Format#
Die Payload liegt immer unter einem Wurzel-Schlüssel respondo — an seinem Vorhandensein erkennt das SDK seinen eigenen Push von fremden (auf iOS in userInfo, auf Android als JSON-Zeichenkette in data["respondo"]).
{
"respondo": {
"type": "message",
"conversation_id": "a1c4e7b2-5d38-4f6a-9e10-3b7c2d5f8a90",
"message_id": "e9a3c1f6-4b8d-4e0a-b5f3-1d7b2a4e9c63",
"deep_link": "respondo://conversation/a1c4e7b2-5d38-4f6a-9e10-3b7c2d5f8a90"
}
}Alle Werte sind flache Strings. Titel und Text der Benachrichtigung werden vom Plattform-Transport zugestellt — aps.alert auf APNs und message.notification auf FCM — nicht innerhalb des respondo-Objekts.
Kampagnen-Pushes enthalten außerdem eine delivery_id, die zum Melden des Open-Beacons verwendet wird, und können zusätzliche flache String-Schlüssel aus den Push-Daten der Kampagne tragen.
Taps & Vordergrund behandeln#
Übergeben Sie bei einem Tap auf die Benachrichtigung die rohe Payload an das SDK. Es parst die Payload und öffnet die richtige Konversation und gibt false zurück, wenn der Push kein Respondo-Push ist (behandeln Sie ihn in diesem Fall selbst).
Android: RespondoPushPayload.from(data)?.let { Respondo.handlePush(it) }
iOS: Respondo.handlePush(userInfo: userInfo)
Flutter: Respondo.handlePushData(message.data)Duplikate werden anhand der message_id zusammengefasst, und solange dieselbe Konversation im Vordergrund geöffnet ist, wird die System-Benachrichtigung unterdrückt — das SDK erledigt beides automatisch.
Device-Tokens registrieren#
Ihre App bezieht das Device-Token von ihrem Push-Subsystem und übergibt es an setPushToken. Rufen Sie beim Logout clearPushToken auf.
- Android — das FCM-Registrierungstoken aus
FirebaseMessaging.getToken(). - iOS (nativ) — das APNs-Device-Token (Hex) aus
didRegisterForRemoteNotificationsWithDeviceToken. - iOS über Flutter (firebase_messaging) — verwenden Sie
getAPNSToken(), nichtgetToken(). Das Übergeben des FCM-Tokens auf iOS sendet es an APNs, wo es kein gültiges Device-Token ist und Pushes nie ankommen.getAPNSToken()kann in den ersten Momenten nach dem Start null sein — wiederholen Sie es in diesem Fall nach einer kurzen Verzögerung.
override fun onNewToken(token: String) {
Respondo.setPushToken(token)
}func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
) {
let token = deviceToken.map { String(format: "%02x", $0) }.joined()
Respondo.setPushToken(token)
}// iOS braucht das APNs-Token; Android braucht das FCM-Token.
final token = Platform.isIOS
? await FirebaseMessaging.instance.getAPNSToken()
: await FirebaseMessaging.instance.getToken();
if (token != null) Respondo.setPushToken(token);
// FCM rotiert sein Registrierungstoken; halten Sie Android synchron.
if (!Platform.isIOS) {
FirebaseMessaging.instance.onTokenRefresh.listen(Respondo.setPushToken);
}