Ana içeriğe geç

Açılmalar ve derin bağlantılar

Her SDK bir basışı tek mesaja normalize eder ve handler'ınız çalışmadan olayı bildirir. Sizin işiniz yönlendirmek.

Mesaj, yine

AlanNe için
urlDerin bağlantı. Kendi url'i olan bir butona basıldıysa bu butonunkidir.
dataKampanyanın data haritası — screen, id'ler, ne koyduysanız. Yalnızca düz string (FCM data başka bir şeye izin vermez).
actionIdHangi buton, varsa.
msgId, campaignIdAnalitik eşleştirme.

Uygulama içi gezinme için data.screen + id'leri, uygulamadan çıkabilecek ya da paylaşılabilecek bağlantılar için url'i tercih edin.

Yönlendirme kalıpları

React Native

OpenNotification.onOpen(({ url, data, actionId }) => {
if (actionId === "later") return; // bir "sonra hatırlat" butonu
if (data.screen) navigation.navigate(data.screen, data);
else if (url) Linking.openURL(url);
});

Swift

OpenNotification.shared.onOpen = { message in
if let screen = message.data["screen"] { router.show(screen, params: message.data) }
else if let url = message.url.flatMap(URL.init) { UIApplication.shared.open(url) }
}

Kotlin

OpenNotification.onOpen = { message ->
message.data["screen"]?.let { router.show(it, message.data) }
?: message.url?.let { startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(it))) }
}

Web — service worker data.url'i (ya da butonun data["a:<id>"]'sini) açar, önce o yoldaki mevcut sekmeye odaklanır. Sayfada ele almak için gerekenleri URL'in query string'ine koyup yüklenince okuyun.

Soğuk başlatma

PlatformBasış size nasıl ulaşır
iOS (Swift)didFinishLaunching'de handleLaunch(userInfo:)onOpen kurulunca yeniden oynatılır.
Android (Kotlin)onCreate / onNewIntent'te OpenNotification.messageFrom(intent).
React NativeJS hazır olana kadar native'de tutulur, sonra onOpen'a verilir.
WebWorker URL'i açar/odaklar; sayfa normal yüklenir.

Aksiyon butonları

İçerikte dil başına tanımlanır (actions: [{ id, title, url? }], en çok 3). Platformların gösterimi:

Gösterilen butonButonun URL'i nereye gider
iOS4'e kadar (biz ≤ 3 göndeririz); kategoriyi kaydetmek için NSE gerekirmessage.url
Android3message.url
Chrome / Edge2data["a:<id>"]
Safariyok

Buton basışı clicked, gövde basışı opened bildirir. İkisi de huniye sayılır; yalnızca clicked CTR'dir.

Ön planda geliş

Uygulama açıkken push gelince onReceive tetiklenir. SDK'lar sistem bildirimini yine gösterir (iOS willPresent ile, Android çizerek); onReceive'i ikinci bir uyarı için değil, bir rozeti ya da listeyi yenilemek için kullanın.

İzleme ucu

SDK'lar sizin için çağırır; özel entegrasyonlar için belgelenmiştir:

POST /v1/e/d/<msgId> delivered
POST /v1/e/o/<msgId> opened
POST /v1/e/c/<msgId> clicked
POST /v1/e/x/<msgId> dismissed

Başlık yok, gövde yok, anahtar yok. msgId HMAC imzalıdır ve appId|campaignId|userId|subscriptionId|platform|variant gömer; API veritabanı okumadan doğrular, olayı yazar, kampanya (ve varyant) sayaçlarını artırır ve webhook'u atar. IP başına sınırlıdır (EVENT_RATE_LIMIT). Tekrarlanan bir ping yalnızca analitik sayaçlarını oynatır; hiçbir şey vermez.