Ana içeriğe atla
OSNotification sınıfı, OneSignal SDK’larında push bildirim payload’unu temsil eder. Uygulamanızda bildirimleri işlerken bildirim başlığına, gövdesine, özel veriye ve platforma özgü özelliklere erişmek için 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 dinleyicisi sağlar:

Android alanları

PropertyTypeDescription
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ı

PropertyTypeDescription
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.
parseWithApnsMethodHam 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.
PropertyTypeDescription
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. OneSignal kullanan cihazlara başka bir servisten de push gönderiyorsanız, yinelenen işlemeyi önlemek için bu anahtarı filtreleyebilirsiniz. Ayrıntılar için Push payload handling sayfasına bakın.

additionalData’yı APNS root’a taşı

iOS uygulamaları için, additionalData alanlarını custom sözlüğünün içine yerleştirmek yerine APNS payload’unun root’unda kullanılabilir hale getirebilirsiniz. Bu, özel bildirim işleyicilerinde erişimi kolaylaştırır. 1. API aracılığıyla etkinleştirin Update an app API’yi kullanın ve şunu ayarlayın:
{
  "additional_data_is_root_payload": true
}
2. data ile push gönderin data alanları APNS root payload’unda görünür:
{
  "aps": {
    "alert": { "title": "Sale", "body": "20% off all items!" }
  },
  "promo_code": "SPRING20"
}
Artık custom sözlüğünü kontrol etmeden promo_code’a doğrudan erişebilirsiniz.

Geri yüklenen bildirimler (Android)

Android SDK, cihaz yeniden başlatıldıktan veya uygulama yeniden başlatıldıktan sonra bildirimleri geri yükler.
PropertyTypeDescription
restoringbooleanBildirim cihaz/uygulama yeniden başlatmasından sonra geri yüklendiyse true.
Geri yüklenen bildirimleri atlamak için restoring bayrağını kontrol edin. Eski bildirimlerin tamamen geri yüklenmesini önlemek için, gönderirken kısa veya 0 TTL (time-to-live) ayarlayın.

Push token formatları

  • iOS Push (APNS): 64 karakter, yalnızca onaltılık (0-9, a-f). deviceToken.map {String(format: "%02x", $0)}.joined()
  • Android Push (FCM): Genellikle 163 karakter, alfanümerik; tire, iki nokta üst üste ve alt çizgi içerebilir.

SSS

Maksimum payload boyutu nedir?

Push bildirim payload’ları toplam 4096 bayt ile sınırlıdır. additionalData alanı 2048 bayt ile sınırlıdır. Kesmeyi önlemek için toplam payload’unuzu 3500 bayt altında tutun.

Ham payload’da OneSignal bildirimini nasıl tanımlayabilirim?

Tüm OneSignal bildirimleri, bildirim ID’sini içeren "i" anahtarına sahip bir "custom" nesnesi içerir. OneSignal bildirimlerini diğer sağlayıcılar tarafından gönderilenlerden ayırt etmek için bu anahtarı kontrol edin.

additionalData’ya APNS root payload’unda erişebilir miyim?

Evet. additionalData alanlarını custom sözlüğünün içi yerine APNS root’una yerleştirmek için Update an app API aracılığıyla additional_data_is_root_payload’u etkinleştirin. Ayrıntılar için additionalData’yı APNS root’a taşı bölümüne bakın.