Notification Category: nedir, hangi kategoriler vardır ve iOS'ta nasıl çalışır

Yazar: IT Sectr Yayınlanma: 2026-03-20 Okuma süresi: 8 dk

Notification Category (bildirim kategorisi), push bildirimlerini türe göre gruplamak ve bunlara özel eylemler eklemek için bir iOS mekanizmasıdır. Kategori, bir bildirimde 3D Touch veya uzun basma kullanıldığında hangi düğmelerin görüntüleneceğini ve sistemin bu türdeki gelen bildirimleri nasıl işlediğini belirler. Apple Geliştirici Dokümantasyonu'na göre, UNNotificationCategory, UNUserNotificationCenter'a kaydedilir ve APNS yükündeki category alanı aracılığıyla bir bildirime bağlanır.

Önemli Noktalar

  • Notification Category — push bildirimlerini sınıflandırmak ve bunlara eylem eklemek için iOS mekanizması
  • UNNotificationCategory — bir dizi UNNotificationAction ile bir kategoriyi kaydeden sınıf
  • Eylemler — bildirimin altındaki düğmeler: metin girişi için UNTextInputAction, dokunma için UNNotificationAction
  • Bağlantı — kategori, APNS yükündeki aps sözlüğünde category anahtarı aracılığıyla belirtilir
  • Android'den farkı — iOS Category eylemleri yönetir, Android Channel ise önemi ve sesi yönetir

iOS'ta Notification Category Nedir?

Notification Category, iOS 8.0'dan itibaren kullanılabilen bir özelliktir ve geliştiricilerin push bildirimlerini sınıflandırmasına ve bunlara etkileşimli eylemler eklemesine olanak tanır. Bir kullanıcı bir bildirim aldığında ve kuvvetlice bastığında (3D Touch) veya uzun bastığında, kategori tarafından tanımlanan düğmeler görünür. Bu, bildirimleri etkileşimli hale getirir ve kullanıcıların uygulamayı açmadan işlem yapmasına olanak tanır.

Bir kategori, bir tanımlayıcı, bir dizi eylem ve isteğe bağlı görüntüleme parametreleri içeren bir UNNotificationCategory nesnesi aracılığıyla kaydedilir. Sistem, APNS yükünden kategori tanımlayıcısını kullanarak kayıtlı kategoriyi bulur ve ilgili düğmeleri görüntüler.

Android Notification Channel'ın aksine, iOS Category önemi, sesi veya titreşimi yönetmez. Tek amacı, bildirimler için etkileşimli yetenekler sağlamaktır: yanıt, onay, iptal veya metin girişi düğmeleri.

Kategoriler Zorunlu mu?

iOS'ta push bildirimleri görüntülemek için kategoriler zorunlu değildir. Bildirim yine de görünecektir — bir kategori kayıtlıysa düğmelerle, değilse düğmeler olmadan. Kategoriler yalnızca bildirimlere etkileşim eklemek için gereklidir.

Bildirim Kategorileri Nasıl Çalışır?

Kategori mekanizması dört aşamadan oluşur: istemcide kategoriyi kaydetme, kategoriyle APNS yükü gönderme, sistemin kategoriyi tanıması ve kullanıcı eylemini işleme.

  • Kayıt — uygulama bir dizi eylemle UNNotificationCategory oluşturur ve UNUserNotificationCenter'a kaydeder
  • Gönderme — sunucu, APNS yüküne kategori tanımlayıcısıyla eşleşen bir değerle category anahtarını ekler
  • Görüntüleme — iOS bildirimi gösterir ve force touch ile kategoriyle ilişkili düğmeleri görüntüler
  • İşleme — kullanıcı bir düğmeye dokunur ve UNUserNotificationCenterDelegate.didReceive response tetiklenir

Bir kategorideki eylemler iki türde olabilir: foreground (uygulamayı açar) ve background (arka planda yürütülür). Arka plan eylemleri için uygulama, UNNotificationActionHandler'da işlemek üzere sınırlı süreye (yaklaşık 30 saniye) sahiptir.

Kategori Kaydederken Seçenekler

UNNotificationCategory, options parametresi aracılığıyla birkaç seçeneği destekler: customDismissAction — bildirim kaydırıldığında olay alma, allowInCarPlay — CarPlay'de eylemleri gösterme, hiddenPreviewsBodyPlaceholder — gizli önizlemeler için özel yer tutucu metni.

UNNotificationAction: Eylem Türleri

iOS, bildirim kategorileri için iki tür eylem sağlar. Her türün kendi amacı ve kullanıcıyla etkileşim şekli vardır.

TürSınıfAçıklamaÖrnek
Basit EylemUNNotificationActionBaşlık ve seçenekler (destructive, foreground, authenticationRequired) içeren düğme“Sil”, “Görüntüle”
Metin GirişiUNTextInputActionYer tutucu ile metin giriş alanı açan düğme“Yanıtla”, “Yorum Yap”

UNTextInputAction, iOS'a özgü bir özelliktir. Kullanıcı “Yanıtla” düğmesine dokunduğunda, sistem kullanıcının yanıtını yazdığı bir metin alanı gösterir. Girilen metin, eylem tanımlayıcısıyla birlikte temsilciye iletilir. Bu, uygulamayı açmadan hızlı yanıtlar uygulamaya olanak tanır.

Eylem seçenekleri: options.authenticationRequired — cihaz kilidinin açılmasını gerektirir, options.destructive — düğmeyi kırmızı renkte vurgular (tehlikeli eylemler için), options.foreground — dokunmadan sonra uygulamayı açar.

iOS Kodunda Kategori Ayarlama

Kategoriler uygulama başlatılırken kaydedilir, genellikle didFinishLaunchingWithOptions yönteminde. Kayıt, bildirim izni istendikten sonra UNUserNotificationCenter aracılığıyla yapılır. Kategoriler her başlatmada güncellenebilir — eski sürümler yenileriyle değiştirilir.

swift
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func registerNotificationCategories() {
        let replyAction = UNTextInputNotificationAction(
            identifier: "reply",
            title: "Yanıtla",
            options: [.foreground],
            textInputButtonTitle: "Gönder",
            textInputPlaceholder: "Mesaj girin..."
        )

        let deleteAction = UNNotificationAction(
            identifier: "delete",
            title: "Sil",
            options: [.destructive]
        )

        let messageCategory = UNNotificationCategory(
            identifier: "message",
            actions: [replyAction, deleteAction],
            intentIdentifiers: [],
            options: [.customDismissAction]
        )

        UNUserNotificationCenter.current()
            .setNotificationCategories([messageCategory])
    }

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        UNUserNotificationCenter.current().delegate = self
        registerNotificationCategories()
        return true
    }
}

Kategori kaydedildikten sonra, APNS yükünde category = “message” bulunan her bildirim “Yanıtla” ve “Sil” düğmelerini gösterecektir. Dokunma işleme, userNotificationCenter:didReceive response içinde gerçekleşir ve actionIdentifier hangi düğmeye basıldığını belirler.

Temsilcide Dokunma İşleme

Kullanıcı bir kategori düğmesine dokunduğunda, iOS bir UNNotificationResponse nesnesiyle UNUserNotificationCenterDelegate'i çağırır. response.actionIdentifier, dokunulan düğmenin tanımlayıcısını içerir ve response.notification.request.content.userInfo, yükten özel verileri içerir.

Android Kanallarından Farklar

Android Bildirim Kanallarına aşina olan geliştiriciler, bunları sıklıkla iOS Bildirim Kategorileriyle karıştırır. Benzer isme rağmen, bu mekanizmalar farklı görevleri çözer ve farklı şekilde çalışır.

  • Amaç — Android Kanalları bildirimlerin önemini ve görünürlüğünü yönetir; iOS Kategorileri etkileşimli eylemleri yönetir
  • Zorunluluk — Android Kanalı bildirim göstermek için zorunludur; iOS Kategorisi isteğe bağlıdır
  • Kullanıcı Kontrolü — Android kullanıcıları kanalları sistem ayarlarında yapılandırır; iOS kategorileri kullanıcıya doğrudan görünmez
  • Gruplama — Android Kanalları ChannelGroups'da gruplanabilir; iOS Kategorileri gruplanmaz

Her iki platform da her iki mekanizmayı birleştirebilir: Android'de bir bildirim, NotificationCompat'tan eylemler içeren bir kanala ait olabilirken, iOS'te bir kategori, iOS'ta thread-id olarak adlandırılan ve bildirim merkezinde bildirimleri gruplamak için kullanılan kanalları tamamlar.

Kategori ile APNS Yükü

Bir bildirimin kategori düğmeleriyle görüntülenmesi için, sunucunun APNS yüküne category anahtarını eklemesi gerekir. Bu anahtar olmadan, sistem bildirime hangi kategoriyi uygulayacağını bilemez.

json
{
    "aps": {
        "alert": {
            "title": "Yeni mesaj",
            "body": "Anna: Merhaba! Nasılsın?"
        },
        "category": "message",
        "thread-id": "chat_123",
        "badge": 5,
        "sound": "default"
    }
}

category anahtarı, istemcide setNotificationCategories aracılığıyla kaydedilen tanımlayıcıyla tam olarak eşleşmelidir. Büyük/küçük harf önemlidir — “message” ve “Message” farklı kategoriler olarak kabul edilir. Kategori bulunamazsa, bildirim düğmeler olmadan görünür ve günlüklerde hata olmaz.

Bilinmeyen Kategorileri İşleme

Sunucu, istemcide kayıtlı olmayan bir kategoriyle bildirim gönderirse, iOS kategoriyi yok sayar ve bildirimi düğmeler olmadan gösterir. Hata günlüğe kaydedilmez ve uygulama uyuşmazlıktan haberdar olmaz. Sunucu ve istemci arasında kategori listesinin senkronize edilmesi önerilir.

Kategori Tasarım Kalıpları

iOS'ta bildirim kategorileri tasarlarken, bir kategori — bir senaryo ilkesini izleyin. Her kategori belirli bir etkileşim türüne karşılık gelmelidir: bir mesaja yanıt verme, bir eylemi onaylama, bir talebi reddetme. Aynı kategoride farklı senaryoları karıştırmayın.

Kullanıcının uygulamayı açmadan metin girmesi gereken senaryolar için (mesajlaşma yanıtları, yorumlar, hızlı notlar) UNTextInputAction kullanın. Metin eylemleri katılımı artırır — kullanıcı, uygulama içinde 5+ yerine 2 dokunuşla anlamlı bir eylem gerçekleştirir.

Tehlikeli eylemler (silme, engelleme) için destructive seçeneğini kullanın. iOS bu düğmeleri kırmızı renkle vurgulayarak kullanıcıyı eylemin geri döndürülemezliği konusunda uyarır. Cihaz kilidi açmayı gerektiren eylemler için (kişisel verileri görüntüleme) authenticationRequired belirtin.

Kategorileri farklı cihazlarda test edin: 3D Touch'lı iPhone'da, 3D Touch'sız iPhone'da (uzun basma), iPad'de ve Mac'te. Kategori davranışı Apple platformları arasında biraz farklılık gösterebilir. CarPlay'e özellikle dikkat edin: kategori düğmeleri araba ekranında görünür ve sürücü güvenliği için minimum metinle tasarlanmalıdır.

Sıkça Sorulan Sorular

iOS'ta kaç kategori kaydedilebilir?

Hiçbir sınır yoktur — iOS, UNNotificationCategory sayısına bir sınır koymaz. Ancak pratikte, temsilci işlemeyi karmaşıklaştırmamak için 10–15'ten fazla kategori kullanılmaması önerilir. Her kategori en fazla 4 eylem (düğme) içerebilir. 4'ten fazla eylem sistem tarafından yok sayılır.

Kategori düğmesine dokunma nasıl işlenir?

UNUserNotificationCenterDelegate protokolünü ve didReceive yöntemini uygulayın. response.actionIdentifier'ı kontrol edin: UNNotificationDismissActionIdentifier — kapatmak için kaydırma, UNNotificationDefaultActionIdentifier — gövdeye dokunma veya özel düğme tanımlayıcınız. Metin giriş düğmeleri için metin, response.userText aracılığıyla kullanılabilir.

category, thread-id'den nasıl farklıdır?

Category — bildirim için etkileşimli eylemleri (düğmeleri) tanımlar. Thread-id — Bildirim Merkezindeki bildirimleri konuya göre gruplar. Her iki anahtar da APNS yükünde belirtilir. Category ve thread-id ilişkili değildir: bir bildirimin kategorisi olabilir ancak thread-id'si olmayabilir ve bunun tersi de geçerlidir.

Kategoriler macOS'ta çalışır mı?

Evet, UNNotificationCategory, macOS 10.14+ (Mojave) üzerinde UserNotifications framework'ünü kullanan uygulamalarda desteklenir. macOS'ta kategorilerin davranışı iOS'a benzer: bir bildirime tıklandığında düğmeler gösterilir ve işleme UNUserNotificationCenterDelegate aracılığıyla yapılır.

Kategorileri her başlatmada güncellemek gerekir mi?

setNotificationCategories aracılığıyla her uygulama başlatmasında kategorilerin kaydedilmesi önerilir. Sistem, her çağrıda eski kategori kümesini yenisiyle değiştirir. Güncellemezseniz, kategoriler başlatmalar arasında kalıcı olur, ancak kod değiştiğinde eski kategoriler beklenmeyen davranışlara neden olabilir.

Özet

  • Notification Category — push bildirimlerine etkileşimli eylemler eklemek için iOS mekanizması
  • UNNotificationCategory — bir tanımlayıcı, UNNotificationAction dizisi ve seçenekleri birleştiren sınıf
  • UNTextInputAction — uygulamayı açmadan hızlı yanıtlar için metin giriş alanı içeren eylem
  • APNS Yükü — aps sözlüğündeki category anahtarı, bildirimi kayıtlı bir kategoriye bağlar
  • En fazla 4 eylem — kategori başına maksimum düğme sayısı, fazlası sistem tarafından yok sayılır
  • Eylem seçenekleri — foreground (uygulamayı aç), destructive (kırmızı düğme), authenticationRequired
  • Android'den farkı — iOS Category eylemleri işler, Android Channel önemi ve sesi işler

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun