0Pricing
Swift Academy · Ders

Anlık Bildirimlere Kaydolma

İzin isteyin ve cihaz belirteci alın.

Anlık Bildirimlere Kaydolma, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 1. 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.

Anında Bildirimler Baştan Sona Nasıl Çalışır

Bir anında bildirim, sunucunuzdan Apple Anında Bildirim Hizmeti (APNs) üzerinden belirli bir cihaza gider. Cihaz, kimliğini APNs'nin verdiği bir cihaz belirteciyle kanıtlar. Bunların hepsinden önce kullanıcının izin vermesi ve uygulamanın kaydolması gerekir.

// Flow: App registers -> APNs returns device token ->
// you send token to your server -> server pushes via APNs

Bildirim Merkezi

UNUserNotificationCenter, yerel ve uzak bildirimlerle ilgili her şey için kullandığınız tek nesnedir: yetkilendirme istemek, temsilciyi ayarlamak, yerel bildirimleri zamanlamak ve ayarları okumak. Paylaşılan örneği alın.

import UserNotifications
let center = UNUserNotificationCenter.current()
// All notification configuration goes through center

Yetkilendirme İsteme

Bildirimleri göstermeden önce kullanıcıdan izin istemelisiniz. requestAuthorization(options:), sistem istemini gösterir ve kullanıcının kabul edip etmediğini döndürür. Yalnızca ihtiyacınız olan seçenekleri isteyin: .alert, .sound, .badge.

import UserNotifications
func requestAuth() async throws -> Bool {
    let center = UNUserNotificationCenter.current()
    return try await center.requestAuthorization(
        options: [.alert, .sound, .badge])
}

APNs'ye Kaydolma

Yetkilendirme, kaydolmadan ayrı bir işlemdir. İzin aldıktan sonra veya izin alma işlemiyle birlikte, ana aktörde registerForRemoteNotifications() çağrısını yapın. Bu çağrı, APNs'den bir cihaz belirteci ister. Ana iş parçacığında çalışmalıdır.

import UIKit
@MainActor
func registerForPush() {
    UIApplication.shared.registerForRemoteNotifications()
}

Cihaz Belirtecini Alma

Başarılı olduğunda, uygulama temsilcisinin didRegisterForRemoteNotificationsWithDeviceToken yöntemi bir Data belirteciyle çağrılır. Bu belirteci onaltılık bir dizeye dönüştürüp sunucunuza gönderin; sunucunuz bu dizeyi cihazı hedeflemek için kullanır.

import UIKit
func application(
    _ app: UIApplication,
    didRegisterForRemoteNotificationsWithDeviceToken
    deviceToken: Data) {
    let token = deviceToken.map {
        String(format: "%02x", $0) }.joined()
    print("APNs token:", token)
    // send token to your backend
}

Kayıt Hatasını Ele Alma

Kayıt başarısız olabilir: ağ bağlantısı olmayabilir, APNs yetkisi bulunmayabilir veya desteklenmeyen bir ortamda çalışıyor olabilirsiniz. Uygulamanın çökmesi yerine günlüğe kaydedip düzgün şekilde toparlanmasını sağlamak için didFailToRegisterForRemoteNotificationsWithError yöntemini uygulayın.

import UIKit
func application(
    _ app: UIApplication,
    didFailToRegisterForRemoteNotificationsWithError
    error: Error) {
    print("Push registration failed:", error)
}

Belirteçler Değişebilir

Bir cihaz belirteci kalıcı değildir. Kullanıcı yedekten geri yükleme yaptığında, uygulamayı yeniden yüklediğinde veya yeni bir cihaza geçtiğinde değişir. Her açılışta mutlaka yeniden kaydolun ve en güncel belirteci yükleyerek sunucu tarafındaki eski belirtecin yerine koyun.

// Best practice: register on each launch,
// always upload the freshly received token,
// never cache a token as permanent.
let rule = "re-register every launch"
_ = rule

Geçerli Ayarları Denetleme

Kullanıcı daha sonra Ayarlar'dan izni geri çekebilir. Bildirimlere güvenmeden önce geçerli yetkilendirme durumunu ve hangi özelliklere izin verildiğini okumak için getNotificationSettings sorgusunu kullanın.

import UserNotifications
func currentStatus() async -> UNAuthorizationStatus {
    let settings = await UNUserNotificationCenter
        .current().notificationSettings()
    return settings.authorizationStatus
}

Geçici Yetkilendirme

.provisional seçeneği, bildirimlerin başlangıçta bir istem gösterilmeden sessizce Bildirim Merkezi'ne ulaşmasını sağlar. Bu, kullanıcılara bildirimleri kesin olarak etkinleştirmeden önce deneme fırsatı vermek için idealdir; kullanıcılar bunları açık tutabilir veya kapatabilir.

import UserNotifications
func requestQuiet() async throws -> Bool {
    try await UNUserNotificationCenter.current()
        .requestAuthorization(
            options: [.alert, .sound, .provisional])
}

Gerekli Yetenek

Xcode hedefinizde Anında Bildirimler yeteneğini etkinleştirmeden bunların hiçbiri çalışmaz; bu işlem aps-environment yetkisini ekler. Arka planda teslimat için Uzak bildirimlerle birlikte Arka Plan Modları yeteneğini de etkinleştirin.

// Xcode target > Signing & Capabilities:
//   + Push Notifications
//   + Background Modes > Remote notifications
let caps = "entitlements required"
_ = caps

Kaydı Bir Araya Getirme

Temiz bir başlangıç akışı şöyledir: yetkilendirme isteyin ve izin verilirse ana aktörde uzak bildirimlere kaydolun. Belirteç daha sonra yüklenmek üzere temsilci geri çağrısına gelir.

import UIKit
import UserNotifications
func setupPush() async {
    let center = UNUserNotificationCenter.current()
    let granted = (try? await center.requestAuthorization(
        options: [.alert, .sound, .badge])) ?? false
    if granted {
        await MainActor.run {
            UIApplication.shared.registerForRemoteNotifications()
        }
    }
}

Hızlı Kontrol

Yetkilendirme ile kayıt arasındaki ilişkiyi hatırlayın.

Özet

Push bildirimlerine nasıl kaydolacağınızı öğrendiniz:

  • UNUserNotificationCenter kullanarak .alert/.sound/.badge yetkilendirmesi isteyin.
  • Yetkilendirme ve kayıt ayrı işlemlerdir; ana aktör üzerinde registerForRemoteNotifications() çağrısını yapın.
  • Data belirtecini onaltılık biçime dönüştürüp yükleyin; belirteçler değişebildiği için her başlatmada yeniden kaydolun.
  • Push Bildirimleri yeteneğini etkinleştirin ve .provisional yetkilendirmesini değerlendirin.

Sıkça Sorulan Sorular

“Anlık Bildirimlere Kaydolma” dersi ücretsiz mi?

Evet — “Anlık Bildirimlere Kaydolma” 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.

“Anlık Bildirimlere Kaydolma” dersinde ne öğreneceğim?

İzin isteyin ve cihaz belirteci alın. 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 1. dersidir.

“Anlık Bildirimlere Kaydolma” 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