Ana içeriğe atla

OSNotification payload referansı

Bu sayfa, OSNotification sınıfı aracılığıyla OneSignal push bildirim payload’unun yapısını ve alanlarını açıklar. Mobil uygulamanızda bildirimleri alırken veya işlerken bu referansı kullanın.
Push bildirim payload’ları 4096 bayt ile sınırlıdır. Kesmeyi önlemek için payload’ları 3500 bayt altında tutun. additionalData alanı 2048 bayt ile sınırlıdır.

Uygulamanızda OSNotification’a erişim

Tüm OneSignal SDK’ları, bir OSNotification nesnesi döndüren bir bildirim olay dinleyicisini tetikler.
  • Android: OneSignal.setNotificationWillShowInForegroundHandler(...)
  • iOS: notificationReceivedBlock veya UNNotificationServiceExtension
Bildirim başlığına, gövdesine, veriye ve diğer özelliklere erişmek için bu nesneyi kullanın. OSNotification sınıfı, SDK bildirim olay dinleyicilerinde erişilebilen tüm bildirim payload verilerini sağlar. Orijinal OSNotification ve OSNotificationPayload sınıflarını tek bir getter tabanlı arayüzde birleştirir.

Android alanları

ÖzellikTipAçıklama
getBody()StringBildirimin gövde metni.
getTitle()StringBildirimin başlığı.
getLaunchURL()StringBildirime tıklandığında açılan URL.
getNotificationId()StringOneSignal bildirim UUID’si.
getAdditionalData()JSONObjectDashboard veya REST API aracılığıyla ayarlanan özel anahtar-değer verisi. Maks 2048 bayt.
getTemplateId()StringŞablonlar kullanılarak gönderildiyse, şablon UUID’si.
getAndroidNotificationId()intAndroid yerel bildirim ID’si.
getLargeIcon()StringBüyük simgenin URL’si veya kaynak adı.
getSmallIcon()StringKüçük simge kaynak adı.
getSmallIconAccentColor()StringARGB formatında simge vurgu rengi.
getSound()StringÇalınan ses kaynak adı.
getCollapseId()StringBildirim değiştirme için collapse anahtarı.
getPriority()intAndroid önceliği (-2 ile 2 arası).
getLedColor()StringARGB formatında LED rengi.
getLockScreenVisibility()intKilit ekranı görünürlüğü: 1 = public, 0 = private, -1 = secret.
getFromProjectNumber()StringGönderen proje numarası.
getGroupedNotifications()List<OSNotification>Bir özette dahil edilen bildirimler.
getGroupKey()StringÖzetlerde kullanılan grup anahtarı.
getGroupMessage()StringÖzet metni.
getBackgroundImageLayout()BackgroundImageLayoutArka plan resmi düzeni ve metin renkleri için nesne.
getActionButtons()List<ActionButton>Simge, metin ve ID içeren eylem düğmeleri.
getRawPayload()StringPayload’un tam ham JSON dizesi.

iOS alanları

ÖzellikTipAçıklama
bodyNSStringBildirimin gövde metni.
titleNSStringBildirimin başlığı.
launchURLNSStringBildirime tıklandığında açılan URL.
notificationIdNSStringOneSignal bildirim UUID’si.
additionalDataDictionaryDashboard veya REST API aracılığıyla ayarlanan özel anahtar-değer data. Maks 2048 bayt.
templateIdNSStringŞablonlar kullanılarak gönderildiyse, şablon UUID’si.
subtitleNSStringAlt başlık metni.
categoryNSStringiOS kategori tanımlayıcısı.
threadIdNSStringBildirimleri thread’lere gruplamak için kullanılır (iOS 10+).
badgeNSIntegerMutlak rozet değeri.
badgeIncrementNSIntegerRozeti artırma miktarı.
contentAvailableBOOLcontent-available=1 ise, arka plan fetch’i tetikler.
mutableContentBOOLmutable-content=1 ise, bir Notification Service Extension tetikler.
actionButtonsNSArrayiOS eylem düğmeleri.
rawPayloadNSDictionaryPayload’un tam ham JSON’u.
parseWithApnsYöntemHam APNS payload’unu bir OSNotification’a dönüştürür. Servis uzantılarında kullanın.

OSNotificationAction (tıklama olayları)

Kullanıcının bildirimle etkileşimini açıklar.
ÖzellikTipAçıklama
actionIdStringTıklanan eylem düğmesinin ID’si.
typeenumOpened (varsayılan dokunma) veya ActionTaken (düğme dokunması).

Özel OneSignal payload yapısı

Tüm OneSignal bildirimleri payload’da özel bir "custom" nesnesi içerir:
{
  "custom": {
    "i": "the-notification-id"
  }
}
Bu anahtar, OneSignal SDK’larının bildirimi işlemesi için gereklidir. Eksikse, bildirimler tıklama olaylarını veya analitikleri tetiklemeyecektir.Zaten OneSignal kullanan bir cihaza farklı bir servisten push gönderiyorsanız, yinelenen bildirimleri önleyin.

İsteğe bağlı: additionalData’yı APNS root’a taşı

iOS uygulamaları için, özel işleyicilerde daha kolay erişim için additionalData’yı APNS payload’unun root’unda kullanılabilir hale getirebilirsiniz.
  1. Uygulama ayarlarında etkinleştirin Update an app API’yi kullanın ve ayarlayın:
{
  "additional_data_is_root_payload": true
}
  1. data ile push gönderin APNS payload’unun root’unda mevcut olacaktır. Örnek:
{
  "aps": {
    "alert": { "title": "Sale", "body": "20% off all items!" }
  },
  "promo_code": "SPRING20"
}
Artık özel sözlüğü kontrol etmeden promo_code’a doğrudan erişebilirsiniz.

Geri yüklenen bildirimler

Bildirimler, Android SDK tarafından yeniden başlatma veya uygulama yeniden başlatmasından sonra geri yüklenecektir.
ÖzellikTipAçıklama
restoringbooleanBildirim cihaz/uygulama yeniden başlatmasından sonra geri yüklendiyse true.
Geri yüklenen bildirimler restoring bayrağı kullanılarak atlanabilir. Eski içeriği geri yüklemeyi önlemek için, bildirimlerinizde kısa veya 0 TTL (time-to-live) ayarlayın.

İlgili konular