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ı
| Özellik | Tip | Açıklama |
getBody() | String | Bildirimin gövde metni. |
getTitle() | String | Bildirimin başlığı. |
getLaunchURL() | String | Bildirime tıklandığında açılan URL. |
getNotificationId() | String | OneSignal bildirim UUID’si. |
getAdditionalData() | JSONObject | Dashboard 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() | int | Android yerel bildirim ID’si. |
getLargeIcon() | String | Büyük simgenin URL’si veya kaynak adı. |
getSmallIcon() | String | Küçük simge kaynak adı. |
getSmallIconAccentColor() | String | ARGB formatında simge vurgu rengi. |
getSound() | String | Çalınan ses kaynak adı. |
getCollapseId() | String | Bildirim değiştirme için collapse anahtarı. |
getPriority() | int | Android önceliği (-2 ile 2 arası). |
getLedColor() | String | ARGB formatında LED rengi. |
getLockScreenVisibility() | int | Kilit ekranı görünürlüğü: 1 = public, 0 = private, -1 = secret. |
getFromProjectNumber() | String | Gönderen proje numarası. |
getGroupedNotifications() | List<OSNotification> | Bir özette dahil edilen bildirimler. |
getGroupKey() | String | Özetlerde kullanılan grup anahtarı. |
getGroupMessage() | String | Özet metni. |
getBackgroundImageLayout() | BackgroundImageLayout | Arka plan resmi düzeni ve metin renkleri için nesne. |
getActionButtons() | List<ActionButton> | Simge, metin ve ID içeren eylem düğmeleri. |
getRawPayload() | String | Payload’un tam ham JSON dizesi. |
iOS alanları
| Özellik | Tip | Açıklama |
body | NSString | Bildirimin gövde metni. |
title | NSString | Bildirimin başlığı. |
launchURL | NSString | Bildirime tıklandığında açılan URL. |
notificationId | NSString | OneSignal bildirim UUID’si. |
additionalData | Dictionary | Dashboard veya REST API aracılığıyla ayarlanan özel anahtar-değer data. Maks 2048 bayt. |
templateId | NSString | Şablonlar kullanılarak gönderildiyse, şablon UUID’si. |
subtitle | NSString | Alt başlık metni. |
category | NSString | iOS kategori tanımlayıcısı. |
threadId | NSString | Bildirimleri thread’lere gruplamak için kullanılır (iOS 10+). |
badge | NSInteger | Mutlak rozet değeri. |
badgeIncrement | NSInteger | Rozeti artırma miktarı. |
contentAvailable | BOOL | content-available=1 ise, arka plan fetch’i tetikler. |
mutableContent | BOOL | mutable-content=1 ise, bir Notification Service Extension tetikler. |
actionButtons | NSArray | iOS eylem düğmeleri. |
rawPayload | NSDictionary | Payload’un tam ham JSON’u. |
parseWithApns | Yöntem | Ham 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.
| Özellik | Tip | Açıklama |
actionId | String | Tıklanan eylem düğmesinin ID’si. |
type | enum | Opened (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.
- Uygulama ayarlarında etkinleştirin
Update an app API’yi kullanın ve ayarlayın:
{
"additional_data_is_root_payload": true
}
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.
| Özellik | Tip | Açıklama |
restoring | boolean | Bildirim 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