0Pricing
Swift Academy · Ders

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 buttons

Bir 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])
_ = category

Arka 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:

  • UNNotificationAction eylemleri (bunlara UNTextInputNotificationAction da dahildir) oluşturun ve bunları bir UNNotificationCategory altında gruplayın.
  • Kategorileri başlatma sırasında kaydedin; düğmeleri göstermek için içerikte categoryIdentifier değerini, push bildiriminde ise category değerini ayarlayın.
  • Varsayılan ve kapatma kimlikleri de dahil olmak üzere response.actionIdentifier değerini işleyin ve yanıtlar için userText değerini okuyun.
  • Erteleme gibi arka plan eylemleri için .foreground seç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

  1. Anlık Bildirimlere Kaydolma
  2. Bildirim Yüklerini İşleme
  3. Arka Plan Görevleri ve Yenileme
  4. Bildirim Eylemleri ve Kategorileri
← Swift Academy Sayfasına Dön