Interactive Notification, uygulamayı açmadan bir işlem gerçekleştirmeye olanak tanıyan etkileşimli öğelere sahip bir push bildirimidir. Apple Human Interface Guidelines (2025)'a göre, bu tür bildirimler hedef eyleme kadar olan adım sayısını %40 oranında azaltır. Eylem butonları ve giriş alanları, kullanıcının uygulamayı açmadan bildirim panelinden doğrudan bir mesaja yanıt vermesine, abonelik ödemesi yapmasına veya rezervasyon onaylamasına olanak tanır.
Önemli noktalar
Interactive Notification, etkileşimli kontroller (butonlar, anahtarlar ve metin giriş alanları) içeren push bildiriminin genişletilmiş bir biçimidir. Yalnızca bilgi veren standart bildirimin aksine, etkileşimli bildirim kullanıcının bildirim panelinden veya kilit ekranından doğrudan hedef eylemi gerçekleştirmesine olanak tanır. Google Material Design (2025)'e göre, etkileşimli bildirimler ana uygulama sürecini başlatmadan işletim sistemi tarafından işlenir — bu, pil kaynaklarından tasarruf sağlar ve yanıt süresini hızlandırır. Geliştirici, iOS'ta kategoriler ve Android'te kanallar aracılığıyla bir dizi eylem tanımlar ve sistem bunları bağlama göre görüntüler.
Her etkileşimli bildirim üç düzeyden oluşur: ana içerik (başlık, gövde), eylemler (butonlar) ve isteğe bağlı metin girişi. iOS'ta bu bileşenler UNNotificationCategory aracılığıyla, Android'te ise NotificationCompat.Action.Builder aracılığıyla birleştirilir. Sistem, işletim sistemi sürümüne ve metin uzunluğuna bağlı olarak bildirim metninin altında butonları daraltılmış veya genişletilmiş görünümde gösterir. Kullanıcı, bildirimi aldıktan hemen sonra kullanılabilir eylemleri görür ve uygulamaya geçmeden bunlardan birini gerçekleştirebilir.
Interactive Notification çalışma mekanizması iki aşamaya ayrılır: uygulama başlatıldığında kategorilerin kaydedilmesi ve kullanıcı dokunduğunda eylemin işlenmesi. Kayıt aşamasında geliştirici, bir dizi eylem içeren kategori nesneleri oluşturur — her eylemin bir tanımlayıcısı, başlığı ve seçenekleri vardır. Bir push bildirimi alındığında, sistem categoryIdentifier alanıyla kayıtlı kategoriyle eşleştirir ve otomatik olarak ilgili butonları ekler. Kullanıcı bir butona dokunduğunda, sistem eylem tanımlayıcısıyla birlikte UNUserNotificationCenter temsilcisini veya Android'te PendingIntent'i çağırır ve sonucu uygulamaya geri gönderir. WWDC 2024'e göre, doğru yapılandırmayla iOS'ta etkileşimli bir eylemin işlem süresi 200 ms'yi geçmez.
Etkileşimli bildirimler etkileşim yöntemine göre üç ana türe ayrılır: buton tabanlı, metin tabanlı ve çoklu ortam. Her tür kendi görevini çözer ve belirli senaryolarda kullanılır. Tür seçimi bağlama bağlıdır — kullanıcıdan ne kadar az adım gerekirse dönüşüm o kadar yüksek olur. Apple ve Google, onay için butonlar, yanıtlar için giriş alanları ve içerik önizlemesi için medya kullanılmasını önerir.
En yaygın tür, her biri önceden tanımlanmış bir eylemi gerçekleştiren bir veya daha fazla butona sahip bildirimdir. Örneğin, takvim etkinliği için “Kabul Et” ve “Reddet” butonları, bir mesaj için “Beğen” ve “Yanıtla” butonları. iOS dört butona kadar destekler, Android — üçe kadar. Butonlar önceliğe göre gruplandırılabilir: normal ve yıkıcı (onay ile). Apple, kilit ekranında kullanıcı rahatlığı için ikiden fazla ana buton olmamasını önerir.
RemoteInput, kullanıcının uygulamayı açmadan doğrudan bildirimin içine metin girmesine olanak tanıyan bir teknolojidir. iOS'ta bunun için UNTextInputNotificationAction kullanılır, Android'te — girilen metni çıkarmak için bir anahtarla RemoteInput.Builder. En sık mesajlaşma uygulamalarında bir mesaja hızlı yanıt vermek için kullanılır. Girilen metin, bildirim hizmeti veya yerel işleyici aracılığıyla uygulamaya iletilir. Sınırlama, metnin biçimlendirme içerememesidir, yalnızca düz dize.
Medya ekleri olan bildirimler, bildirim panelinde doğrudan resim, ses ve video görüntülemeye olanak tanır. iOS'ta bu, UNNotificationAttachment aracılığıyla, Android'te — BigPictureStyle ile NotificationCompat.MessagingStyle aracılığıyla uygulanır. Medya, push sağlayıcı sunucusu tarafından yüklenir ve ek olarak bildirimle birlikte gönderilir. Ek boyutu sınırlıdır — Apple 10 MB'ı, Google — resimler için 1 MB'ı geçmemeyi önerir. Medya içeriği, haberler, pazar yerleri ve sosyal ağlar için bildirimlerin bilgilendiriciliğini artırır.
iOS'ta Interactive Notification, UNNotificationCategory ve UNNotificationAction kullanılarak UserNotifications çerçevesi aracılığıyla uygulanır. Uygulama başlangıçta kategorileri kaydeder ve bir bildirim alındığında sistem otomatik olarak ilgili butonları görüntüler. Eylemleri işlemek için userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler yönteminin uygulanması gerekir. Aşağıda, Swift'te bir buton ve metin girişi olan bir kategoriyi kaydetme örneği verilmiştir.
import UserNotifications
let replyAction = UNTextInputNotificationAction(
identifier: "reply",
title: "Yanıtla",
options: [.authenticationRequired],
textInputButtonTitle: "Gönder",
textInputPlaceholder: "Mesaj girin…"
)
let category = UNNotificationCategory(
identifier: "message",
actions: [replyAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
setNotificationCategories çağrıldıktan sonra sistem kategorileri kaydeder ve sonraki tüm bildirimler için kullanır. Kod, kategorileri yeni sürümlerle senkronize etmek için her uygulama başlatıldığında çağrılmalıdır. Yanıt işleme, bildirim merkezi temsilcisinde gerçekleştirilir — uygulama, daha sonra işlenmek üzere eylem tanımlayıcısını ve girilen metni alır.
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completion: @escaping VoidBlock
) {
if response.actionIdentifier == "reply" {
let textResponse = response as! UNTextInputNotificationResponse
let message = textResponse.userText
sendMessage(message)
}
completion()
}
userNotificationCenter yöntemi, kullanıcı bir butona dokunduktan veya metin gönderdikten sonra sistem tarafından çağrılır. İşleyici içinde actionIdentifier kontrol edilir — kayıtlı tanımlayıcıyla eşleşirse uygulama, userText'ten girilen metni çıkarır ve sunucuya gönderir. Metin girişi olmayan normal butonlar için tür dönüşümü olmadan UNNotificationResponse kullanılır.
Android'te etkileşimli bildirimler, NotificationCompat sınıfı aracılığıyla addAction ve RemoteInput yöntemleriyle oluşturulur. iOS'un aksine Android, kategorilerin önceden kaydedilmesini gerektirmez — eylemler Builder aracılığıyla doğrudan her bildirime eklenir. Bu daha fazla esneklik sağlar: her bildirimin benzersiz bir buton seti olabilir. Aşağıda, RemoteInput kullanarak Java'da yanıt butonu olan bir bildirim örneği verilmiştir.
RemoteInput remoteInput = new RemoteInput.Builder("key_reply")
.setLabel("Yanıtla")
.build();
PendingIntent replyIntent = PendingIntent.getBroadcast(
this, 1001,
new Intent("ACTION_REPLY"),
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(
R.drawable.ic_reply,
"Yanıtla", replyIntent
)
.addRemoteInput(remoteInput)
.build();
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this, "messages")
.setContentTitle("Yeni mesaj")
.setContentText("Merhaba! Nasılsınız?")
.setSmallIcon(R.drawable.ic_notification)
.addAction(action);
NotificationManagerCompat.from(this)
.notify(100, builder.build());
Anahtar öğe, giriş alanını eyleme bağlayan RemoteInput'dur. Kullanıcı “Yanıtla” butonuna dokunduğunda, sistem bildirimin içinde bir metin girişi iletişim kutusu açar. Gönderimden sonra metin, belirtilen PendingIntent aracılığıyla Intent ile bir BroadcastReceiver veya Activity'ye iletilir. Alıcıda metni almak için “key_reply” anahtarıyla RemoteInput.getResultsFromIntent(intent) kullanılır.
Bundle results = RemoteInput.getResultsFromIntent(intent);
if (results != null) {
CharSequence reply = results.getCharSequence("key_reply");
if (reply != null) {
sendReplyToServer(reply.toString());
}
}
getResultsFromIntent yöntemi, yanıt gönderilirken sistem tarafından iletilen Intent'ten kullanıcının girdiği metni çıkarır. Sonuç, sunucuya göndermek için bir dizeye dönüştürülen CharSequence olarak döndürülür. Kullanıcı göndermeden giriş iletişim kutusunu kapatırsa results boş olur — bu, işleme sırasında dikkate alınmalıdır. Bu yaklaşım, bir Activity başlatmadan hızlı yanıt uygulamaya olanak tanır.
Interactive Notification, hızlı kullanıcı eylemi gerektiren her tür uygulamada kullanılır. En etkili senaryolar, bir mesaja yanıt vermek için mesajlaşma uygulamaları, sipariş onayı için e-ticaret ve davet kabulü için takvimlerdir. Localytics (2025)'e göre, etkileşimli bildirimlere sahip uygulamalar 7. günde %28 daha yüksek tutma oranı gösterir. Aşağıda popüler senaryolar ve platform özelliklerini gösteren bir tablo bulunmaktadır.
| Senaryo | Eylemler | Platform |
|---|---|---|
| Mesajlaşma | Metinle yanıtla, Beğen | iOS + Android |
| E-ticaret | Onayla, ertele, iptal et | iOS + Android |
| Takvim | Kabul et, reddet, belki | iOS |
| Haberler | Kaydet, paylaş, aç | Android |
| Rezervasyon | Onayla, yeniden planla, iptal et | iOS + Android |
Etkileşimli bildirimler tasarlanırken sınırlamayı dikkate almak önemlidir — kullanıcı eylemi yalnızca bir kez gerçekleştirebilir. Bir butona bastıktan sonra bildirim kaybolur veya “tamamlandı” durumuna geçer. Bu nedenle, her eylem geri alınamaz olmalı veya ikinci adımda bir onay içermelidir.
Sıkça Sorulan Sorular
Interactive Notification, kullanıcının uygulamayı açmadan bir eylem gerçekleştirmesini sağlayan butonlar, giriş alanı veya medya eki olan bir push bildirimidir. iOS'ta UserNotifications ve Android'te NotificationCompat aracılığıyla desteklenir.
Normal bildirim yalnızca bilgi verir — kullanıcı dokunur ve uygulamayı açar. Etkileşimli bildirim butonlar veya giriş alanı içerir ve eylem doğrudan bildirim panelinde gerçekleştirilir. Bu, hedef eyleme giden yolu kısaltır ve uygulama üzerindeki yükü azaltır.
iOS dört butona kadar destekler, Android — üçe kadar. Android'te iki buton bildirim panelinde görüntülenir, üçüncüsü açılır menüde bulunur. Apple, kilit ekranında kullanıcı rahatlığı için ikiden fazla ana buton olmamasını önerir.
iOS'ta UNTextInputNotificationAction kullanılır, Android'te — bir anahtarla RemoteInput.Builder. Kullanıcı bildirim içindeki bir iletişim kutusuna metin girer ve uygulama bunu bir temsilci veya Intent aracılığıyla Activity başlatmadan alır.
Push bildirimi almak için internet bağlantısı gerekir, ancak etkileşimin kendisi (butonları gösterme, metin girişi) çevrimdışı çalışır. Sonucun sunucuya gönderilmesi bağlantı yeniden kurulana kadar ertelenebilir.
Özet
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.
Ayrıca okuyun