Bildirim Eylemleri ve Kategorileri
Bildirimlere etkileşimli eylemler ekleyin.
Bildirim Eylemleri ve Kategorileri, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
Etkileşimli Bildirimler
Bildirimler metin göstermekten fazlasını yapabilir — düğmeler sunabilir. Kullanıcı uygulamayı açmadan bir mesaja yanıt verebilir, bir daveti kabul edebilir veya bir hatırlatıcıyı erteleyebilir. Bu özellik, eylemlerin kategoriler altında gruplanmasıyla oluşturulur.
import UserNotifications
// Category = a set of actions
// Each delivered notification names its category
// so the system shows the right buttonsBir Eylem Tanımlama
Bir UNNotificationAction nesnesinin bir kimliği (daha sonra bununla eşleştirme yaparsınız), düğmede gösterilen yerelleştirilmiş bir başlığı ve .destructive ya da uygulamayı başlatan .foreground gibi seçenekleri vardır.
import UserNotifications
let accept = UNNotificationAction(
identifier: "ACCEPT",
title: String(localized: "Accept"),
options: [.foreground])
let decline = UNNotificationAction(
identifier: "DECLINE",
title: String(localized: "Decline"),
options: [.destructive])Bir Kategori Altında Gruplama
Bir UNNotificationCategory, eylemleri bir kategori kimliği altında bir araya getirir. Dizideki eylemlerin sırası, düğmelerin sırasıdır. Kategorileri başlatma sırasında bildirim merkezine bir kez kaydedersiniz.
import UserNotifications
let inviteCategory = UNNotificationCategory(
identifier: "INVITE",
actions: [accept, decline],
intentIdentifiers: [],
options: [])
UNUserNotificationCenter.current()
.setNotificationCategories([inviteCategory])Bildirime Kategorisini Ekleme
Düğmelerin görünmesi için bildirimin içeriği, categoryIdentifier değerini kayıtlı bir kategoriye ayarlamalıdır. Uzak push bildirimlerinde sunucu, "category": "INVITE" değerini aps sözlüğünün içine gönderir.
import UserNotifications
let content = UNMutableNotificationContent()
content.title = String(localized: "New invite")
content.body = String(localized: "Ada invited you")
content.categoryIdentifier = "INVITE"Seçilen Eylemi İşleme
Kullanıcı bir düğmeye dokunduğunda temsilcinin didReceive response yöntemi, response.actionIdentifier değeri eylem kimliğinize ayarlanmış olarak çalışır. Doğru işi gerçekleştirmek için bu değere göre seçim yapın.
import UserNotifications
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse
) async {
switch response.actionIdentifier {
case "ACCEPT": print("accepted")
case "DECLINE": print("declined")
default: break
}
}Varsayılan ve Kapatma Kimlikleri
İki sistem kimliği her zaman vardır: UNNotificationDefaultActionIdentifier, kullanıcının uygulamayı açmak için gövdeye dokunduğu anlamına gelir; UNNotificationDismissActionIdentifier ise bildirimi kapattığı anlamına gelir. Bunları özel eylemlerinizle birlikte işleyin.
import UserNotifications
func route(_ id: String) {
switch id {
case UNNotificationDefaultActionIdentifier:
print("opened the app")
case UNNotificationDismissActionIdentifier:
print("dismissed")
default:
print("custom action", id)
}
}Metin Girişi Eylemleri
Bir UNTextInputNotificationAction, hızlı yanıtlar için ideal olan satır içi bir metin alanı gösterir. Giriş kutusu için bir düğme başlığı ve yer tutucu ekler.
import UserNotifications
let reply = UNTextInputNotificationAction(
identifier: "REPLY",
title: String(localized: "Reply"),
options: [],
textInputButtonTitle: String(localized: "Send"),
textInputPlaceholder: String(localized: "Message"))Yazılan Metni Okuma
Bir metin eylemi için yanıt, bir UNTextInputNotificationResponse nesnesidir. Kullanıcının yazdığı dize olan userText değerini okumak için yanıtı bu türe dönüştürün.
import UserNotifications
func handle(_ response: UNNotificationResponse) {
if let textResponse = response
as? UNTextInputNotificationResponse {
let message = textResponse.userText
print("reply:", message)
}
}Kategori Seçenekleri
Kategori seçenekleri davranışı ayrıntılandırır: .customDismissAction, kapatma olayını temsilcinize iletir; .hiddenPreviewsShowTitle, kilit ekranında önizlemeler gizlense bile başlığı gösterir; .allowInCarPlay ise CarPlay'de görüntülenmesine izin verir.
import UserNotifications
let category = UNNotificationCategory(
identifier: "MESSAGE",
actions: [reply],
intentIdentifiers: [],
options: [.customDismissAction,
.hiddenPreviewsShowTitle])
_ = categoryArka Plan ve Ön Plan Eylemleri
.foreground seçeneği olmadan bir eylem, uygulamayı öne getirmeden işleyicinizi arka planda çalıştırır — erteleme veya beğenme gibi işlemler için idealdir. .foreground ile uygulama başlatılır ve kullanıcı arayüzü gösterebilirsiniz. Kullanıcının bir şey görmesi gerekip gerekmediğine göre seçim yapın.
import UserNotifications
let snooze = UNNotificationAction(
identifier: "SNOOZE",
title: String(localized: "Snooze"),
options: []) // background, no app launch
let open = UNNotificationAction(
identifier: "OPEN",
title: String(localized: "Open"),
options: [.foreground]) // launches app
_ = (snooze, open)Eksiksiz Yanıt Akışı
Bir metin eylemini, bir kategoriyi ve yazılan yanıtı sıradan bir açma işleminden ayıran bir işleyiciyi birleştirin. Bu düzen, satır içi mesaj yanıtlarının temelini oluşturur.
import UserNotifications
func handle(_ response: UNNotificationResponse) async {
switch response.actionIdentifier {
case "REPLY":
let text = (response as?
UNTextInputNotificationResponse)?.userText ?? ""
print("send reply:", text)
case UNNotificationDefaultActionIdentifier:
print("open conversation")
default:
break
}
}Hızlı Kontrol
Sistemin hangi düğmelerin gösterileceğini nasıl bildiğini hatırlayın.
Özet
Etkileşimli bildirimleri öğrendiniz:
UNNotificationActioneylemleri (bunlaraUNTextInputNotificationActionda dahildir) oluşturun ve bunları birUNNotificationCategoryaltında gruplayın.- Kategorileri başlatma sırasında kaydedin; düğmeleri göstermek için içerikte
categoryIdentifierdeğerini, push bildiriminde isecategorydeğerini ayarlayın. - Varsayılan ve kapatma kimlikleri de dahil olmak üzere
response.actionIdentifierdeğerini işleyin ve yanıtlar içinuserTextdeğerini okuyun. - Erteleme gibi arka plan eylemleri için
.foregroundseçeneğini kullanmayın.
Sıkça Sorulan Sorular
“Bildirim Eylemleri ve Kategorileri” dersi ücretsiz mi?
Evet — “Bildirim Eylemleri ve Kategorileri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“Bildirim Eylemleri ve Kategorileri” dersinde ne öğreneceğim?
Bildirimlere etkileşimli eylemler ekleyin. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Bildirim Eylemleri ve Kategorileri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Anlık Bildirimlere Kaydolma
- Bildirim Yüklerini İşleme
- Arka Plan Görevleri ve Yenileme
- Bildirim Eylemleri ve Kategorileri