Ana içeriğe atla
Rozetler, mobil uygulama simgenizde görünen küçük numaralı noktalardır. Kullanıcı dikkatini çekmeye yardımcı olurlar ve etkileşim davranışını etkileyebilirler. Özellikle iOS’ta rozetler ek kurulum gerektirir ve esnek kontrol sunar, aşağıda açıklandığı gibi.
Android Web Push bildirimleri için rozet, bildirimler üzerinde gösterilen küçük simgeyi ifade eder—uygulama simgesini değil—ve özelleştirilebilir. Web Push Rozetleri’ne bakın.

Android rozetleri

Android uygulama simgesi rozet davranışı Android bildirim kategorileri aracılığıyla yönetilebilir. Bir kategorinin (kanalın) rozet gösterip göstermediğini kontrol edebilir ve kategori bazında rozet davranışını ayarlayabilirsiniz.

iOS rozetleri

iOS’ta rozet sayılarının doğru şekilde artmasını sağlamak için şunları yapılandırmanız gerekir:
  • OneSignalNotificationServiceExtension
  • App Groups
Tam talimatlar için Mobil SDK kurulumu’na bakın. Varsayılan olarak, OneSignal SDK:
  1. Uygulama açıldığında uygulama simgesi rozetini temizler.
  2. Bildirim Merkezi’nden bildirimleri kaldırır.
Bildirimleri korumak ve rozet mantığını manuel olarak yönetmek istiyorsanız (örn. kendi sayacınızı kullanarak veya cihazlar arasında durumu senkronize ederek), bu otomatik davranışı devre dışı bırakabilirsiniz. Manuel rozet kontrolü için yaygın kullanım durumları
  • Uygulama başlatıldığında veya devam ettiğinde rozeti sıfırlama
  • Ön planda bir bildirim alındığında rozeti artırma
  • Bir mesaj okunduğunda veya kapatıldığında azaltma
  • App Groups veya arka ucunuz aracılığıyla cihazlar veya uygulama uzantıları arasında rozet durumunu senkronize etme

Otomatik bildirim ve rozet temizlemeyi devre dışı bırakın

Uygulamanızın info.plist dosyasında, Anahtar: OneSignal_disable_badge_clearing ile Boolean türünde Değer YES ekleyin

Örnek info.plist, ` OneSignal_disable_badge_clearing` kapatılmış durumda (`YES ` olarak ayarlanmış).

<key>OneSignal_disable_badge_clearing</key>
<true/>
Bu, SDK’nın uygulama açıldığında bildirimleri otomatik olarak kaldırmasını veya rozeti sıfırlamasını önler.

iOS yerel rozet yönetimi

OneSignal’ın otomatik rozet temizlemesini devre dışı bırakırsanız, rozet davranışını kontrol etmek için Apple’ın yerel API’lerini kullanabilirsiniz.
Apple, iOS 17’de UIApplication.shared.applicationIconBadgeNumber’ı kullanımdan kaldırdı. Artık UserNotifications çerçevesinden aşağıdaki yöntemleri kullanmalısınız:
Rozet sayısını ayarlama Uygulama simgesindeki rozeti belirli bir değere ayarlamak için:
Swift
import UserNotifications
import UIKit

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(5) { error in
    if let error = error {
      print("Failed to set badge count: \(error.localizedDescription)")
    } else {
      print("Badge count updated successfully.")
    }
  }
} else {
  UIApplication.shared.applicationIconBadgeNumber = 5
}
Mevcut rozet sayısını alma iOS, sistemden mevcut rozet sayısını almanız için bir yöntem sağlamaz. Rozet sayısını uygulamanızın durumunda takip etmelisiniz (örneğin, UserDefaults, uygulamanızın veri modeli veya arka ucunuzla senkronize ederek kullanarak).
Swift
// Example: Store and retrieve badge count using UserDefaults
let badgeCount = UserDefaults.standard.integer(forKey: "badgeCount")
// Update badge count as needed
UserDefaults.standard.set(badgeCount, forKey: "badgeCount")
Rozeti artırma veya azaltma Rozet mantığını manuel olarak yönetmelisiniz, çünkü yüklerde göreceli değişiklikler (+1 veya -1 gibi) desteklenmez. Saklanan rozet sayınızı güncelleyin ve ardından ayarlayın:
Swift
// Example: Increment badge count and update system badge
let currentCount = UserDefaults.standard.integer(forKey: "badgeCount")
let updatedCount = max(0, currentCount + 1)
UserDefaults.standard.set(updatedCount, forKey: "badgeCount")

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(updatedCount)
} else {
  UIApplication.shared.applicationIconBadgeNumber = updatedCount
}
Rozeti temizleme Rozeti tamamen kaldırmak için:
Swift

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(0)
} else {
  UIApplication.shared.applicationIconBadgeNumber = 0
}

Rozetlerle iOS push gönderme

OneSignal kontrol panelinde veya API’yi kullanarak rozet sayısını ayarlayabilirsiniz.
  • Dashboard
  • API
  1. Mesajlar > Push veya Şablonlar’a gidin
  2. Platform Ayarları > Apple iOS’a Gönder > Rozetler altında
  3. Şunlardan birini seçin:
    • Belirli bir sayıya ayarlayın
    • Göreceli bir miktarda artırın

OneSignal kontrol paneli mesaj formunda rozetleri ayarlayın.

iOS push bildirimleri gönderirken rozet sayısı bu seçeneklere göre değişecektir. Uygulama açıksa, otomatik rozet temizlemeyi devre dışı bırakmak için yukarıdaki talimatları takip etmediyseniz rozet sayısı sıfırlanacaktır.
Rozetler öğreticisi tamamlandı! Sonraki adımlar: