Notification Category: ano ito, anu-ano ang mga kategorya at paano gumagana sa iOS

May-akda: IT Sectr Nai-publish: 2026-03-20 Oras ng pagbabasa: 8 min

Notification Category (kategorya ng notification) ay isang mekanismo ng iOS para sa pagpapangkat ng mga push notification ayon sa uri at pag-attach ng mga nako-customize na aksyon. Tinutukoy ng kategorya kung aling mga button ang ipinapakita sa 3D Touch o matagal na pagpindot sa notification, pati na rin kung paano pinoproseso ng system ang mga papasok na notification ng ganitong uri. Ayon sa Apple Developer Documentation, ang UNNotificationCategory ay nirerehistro sa UNUserNotificationCenter at iniuugnay sa notification sa pamamagitan ng field na category sa APNS payload.

Mga Pangunahing Punto

  • Notification Category — mekanismo ng iOS para sa pag-uuri ng mga push notification at pagdaragdag ng mga aksyon
  • UNNotificationCategory — klase na nagrerehistro ng kategorya na may set ng UNNotificationAction
  • Mga Aksyon — mga button sa ilalim ng notification: UNTextInputAction para sa input ng teksto, UNNotificationAction para sa tap
  • Ugnayan — ang kategorya ay tinukoy sa APNS payload sa pamamagitan ng key na category sa dictionary na aps
  • Pagkakaiba sa Android — iOS Category ay namamahala ng mga aksyon, Android Channel ay namamahala ng kahalagahan at tunog

Ano ang Notification Category sa iOS?

Ang Notification Category ay isang feature ng iOS (mula sa bersyon 8.0) na nagpapahintulot sa developer na uriin ang mga push notification at magdagdag ng mga interactive na aksyon. Kapag nakatanggap ang user ng notification at pinindot ito nang malakas (3D Touch) o matagal na pinindot, lilitaw ang mga button na tinukoy ng kategorya.

Ang kategorya ay nirerehistro sa pamamagitan ng object na UNNotificationCategory, na naglalaman ng identifier, isang array ng mga aksyon, at mga opsyonal na parameter ng pagpapakita. Ginagamit ng system ang identifier ng kategorya mula sa APNS payload upang mahanap ang nakarehistrong kategorya at ipakita ang mga kaukulang aksyon.

Hindi tulad ng Android Notification Channel, ang iOS Category ay hindi namamahala ng kahalagahan, tunog, o vibration. Ang tanging gawain nito ay magbigay ng mga kakayahang interactive para sa notification: mga button para sa sagot, kumpirmasyon, kanselasyon, o input ng teksto.

Pagiging sapilitan ng mga kategorya

Ang mga kategorya ay hindi sapilitan para sa pagpapakita ng mga push notification sa iOS. Ang notification ay lilitaw sa anumang kaso — may mga button kung naka-rehistro ang kategorya, o wala. Ang mga kategorya ay kailangan lamang para magdagdag ng interaktibidad sa mga notification.

Paano gumagana ang mga kategorya ng notification?

Ang mekanismo ng mga kategorya ay binubuo ng apat na yugto: pagrehistro ng kategorya sa client, pagpapadala ng APNS payload na may kategorya, pagkilala sa kategorya ng system, at pagproseso ng aksyon ng user.

  • Pagrehistro — gumagawa ang app ng UNNotificationCategory na may array ng mga aksyon at nirerehistro ito sa UNUserNotificationCenter
  • Pagpapadala — isinasama ng server sa APNS payload ang key na category na may halaga na tumutugma sa identifier ng kategorya
  • Pagpapakita — ipinapakita ng iOS ang notification at sa force touch ay ipinapakita ang mga button na nakaugnay sa kategorya
  • Pagproseso — pinindot ng user ang button, na-trigger ang UNUserNotificationCenterDelegate.didReceive response

Ang mga aksyon sa kategorya ay maaaring dalawang uri: foreground (nagbubukas ng app) at background (naisasagawa sa background). Para sa mga background na aksyon, ang app ay nakakakuha ng limitadong oras (mga 30 segundo) para sa pagproseso sa UNNotificationActionHandler.

Mga opsyon sa pagrehistro ng kategorya

Sinusuportahan ng UNNotificationCategory ang ilang opsyon sa pamamagitan ng parameter na options: customDismissAction — pagtanggap ng event kapag nag-swipe ng notification, allowInCarPlay — pagpapakita ng mga aksyon sa CarPlay, hiddenPreviewsBodyPlaceholder — custom na teksto para sa mga nakatagong preview. Ang tamang pagsasaayos ng mga opsyon ay nagpapabuti sa karanasan ng user sa iba't ibang Apple device.

UNNotificationAction: mga uri ng aksyon

Ang iOS ay nagbibigay ng dalawang uri ng aksyon para sa mga kategorya ng notification. Bawat uri ay may sariling layunin at paraan ng pakikipag-ugnayan sa user.

UriKlasePaglalarawanHalimbawa
Simpleng aksyonUNNotificationActionButton na may pamagat at mga opsyon (destructive, foreground, authenticationRequired)“Tanggalin”, “Tingnan”
Input ng tekstoUNTextInputActionButton na nagbubukas ng field ng input ng teksto na may hint“Sumagot”, “Magkomento”

UNTextInputAction — isang natatanging kakayahan ng iOS. Sa pagpindot ng button na “Sumagot”, ang system ay nagpapakita ng text field kung saan ang user ay naglalagay ng sagot. Ang inilagay na teksto ay ipinapasa sa delegat kasama ang identifier ng aksyon. Ito ay nagpapahintulot ng mabilis na mga sagot nang hindi binubuksan ang app.

Mga opsyon ng aksyon: options.authenticationRequired — nangangailangan ng pag-unlock ng device, options.destructive — nagha-highlight ng button sa pula (para sa mga mapanganib na aksyon), options.foreground — nagbubukas ng app pagkatapos pindutin.

Pag-configure ng kategorya sa iOS code

Ang mga kategorya ay nirerehistro sa pagsisimula ng app, karaniwan sa pamamaraang didFinishLaunchingWithOptions. Ang pagrehistro ay nagaganap sa pamamagitan ng UNUserNotificationCenter, pagkatapos humingi ng pahintulot para sa mga notification. Ang mga kategorya ay maaaring i-update sa bawat pagsisimula — ang mga lumang bersyon ay pinapalitan ng mga bago.

swift
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func registerNotificationCategories() {
        let replyAction = UNTextInputNotificationAction(
            identifier: "reply",
            title: "Sumagot",
            options: [.foreground],
            textInputButtonTitle: "Ipadala",
            textInputPlaceholder: "Ilagay ang mensahe..."
        )

        let deleteAction = UNNotificationAction(
            identifier: "delete",
            title: "Tanggalin",
            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
    }
}

Pagkatapos ng pagrehistro ng kategorya, bawat notification na may category = “message” sa APNS payload ay magpapakita ng mga button na “Sumagot” at “Tanggalin”. Ang pagproseso ng mga pagpindot ay nagaganap sa userNotificationCenter:didReceive response, kung saan tinutukoy ng actionIdentifier kung aling button ang pinindot.

Pagproseso ng pagpindot sa delegat

Kapag pinindot ng user ang button ng kategorya, tinatawag ng iOS ang delegat na UNUserNotificationCenterDelegate na may UNNotificationResponse object. Ang response.actionIdentifier ay naglalaman ng identifier ng pinindot na button, at ang response.notification.request.content.userInfo ay naglalaman ng custom na data mula sa APNS payload. Para sa UNTextInputAction, available din ang response.userText na may tekstong inilagay ng user.

Mga pagkakaiba mula sa Android channel

Ang mga developer na pamilyar sa Android Notification Channels ay madalas na napagkakamalan ang mga ito sa iOS Notification Categories. Sa kabila ng magkatulad na pangalan, ang mga mekanismong ito ay lumulutas ng magkaibang mga gawain at gumagana sa magkaibang paraan.

  • Layunin — Android Channels ay namamahala ng kahalagahan at visibility ng mga notification; iOS Categories — mga interactive na aksyon
  • Pagiging sapilitan — Android Channel ay sapilitan para sa pagpapakita ng notification; iOS Category ay opsyonal
  • Kontrol ng user — Ang user ng Android ay nagko-configure ng mga channel sa mga setting ng system; ang mga kategorya ng iOS ay hindi direktang nakikita ng user
  • Pagpapangkat — Android Channels ay maaaring pagsamahin sa mga grupo (ChannelGroup); iOS Categories ay hindi pinapangkat

Sa parehong platform, ang parehong mekanismo ay maaaring pagsamahin: sa Android, ang notification ay maaaring mapabilang sa isang channel na may mga aksyon mula sa NotificationCompat, at sa iOS, ang kategorya ay nagpupuno sa mga channel na sa iOS ay tinatawag na thread-id at nagsisilbi para sa pagpapangkat ng mga notification sa notification center.

APNS payload na may kategorya

Upang maipakita ang notification na may mga button ng kategorya, dapat isama ng server ang key na category sa APNS payload. Kung wala ang key na ito, hindi malalaman ng system kung aling kategorya ang ilalapat sa notification.

json
{
    "aps": {
        "alert": {
            "title": "Bagong mensahe",
            "body": "Anna: Kamusta! Kumusta ka?"
        },
        "category": "message",
        "thread-id": "chat_123",
        "badge": 5,
        "sound": "default"
    }
}

Ang key na category ay dapat eksaktong tumugma sa identifier na nirehistro sa pamamagitan ng setNotificationCategories sa client. Mahalaga ang malaki at maliit na titik — ang “message” at “Message” ay itinuturing na magkaibang kategorya. Kung hindi matagpuan ang kategorya, ang notification ay ipapakita nang walang mga button, walang error sa mga log.

Pagproseso ng hindi kilalang kategorya

Kung ang server ay nagpadala ng notification na may category na hindi naka-rehistro sa client, binabalewala ng iOS ang kategorya at ipinapakita ang notification nang walang mga button. Ang error ay hindi nila-log, at ang app ay hindi nalalaman ang hindi pagkakatugma. Inirerekomenda na i-synchronize ang listahan ng mga kategorya sa pagitan ng server at client sa pamamagitan ng configuration file at suriin ang mga ito sa bawat pag-update ng app.

Mga pattern ng disenyo ng kategorya

Sa pagdidisenyo ng mga kategorya ng notification ng iOS, sundin ang prinsipyong isang kategorya — isang senaryo. Bawat kategorya ay dapat tumugma sa isang partikular na uri ng interaksyon: sagot sa mensahe, kumpirmasyon ng aksyon, pagtanggi ng kahilingan. Huwag paghaluin ang iba't ibang senaryo sa isang kategorya — ito ay nakakalito sa user at nagpapahirap sa pagproseso sa delegat.

Gamitin ang UNTextInputAction para sa mga senaryo kung saan kailangan ng user na maglagay ng teksto nang hindi binubuksan ang app: mga sagot sa mga messenger, komento, mabilisang tala. Ang mga aksyong tekstuwal ay nagpapataas ng pakikipag-ugnayan — ang user ay gumagawa ng makabuluhang aksyon sa 2 tap sa halip na 5+ sa bukas na app.

Para sa mga mapanganib na aksyon (tanggalin, i-block) gamitin ang opsyon na destructive. Ia-highlight ng iOS ang mga button na ito sa pula, binabalaan ang user tungkol sa hindi na maibabalik na aksyon. Para sa mga aksyon na nangangailangan ng pag-unlock ng device (pagtingin ng personal na data), itakda ang authenticationRequired — hihingi ang system ng Face ID o password bago isagawa.

Subukan ang mga kategorya sa iba't ibang device: sa iPhone na may 3D Touch, sa iPhone na walang 3D Touch (matagal na pindot), sa iPad, at sa Mac. Ang pag-uugali ng mga kategorya ay maaaring bahagyang mag-iba sa iba't ibang platform ng Apple. Espesyal na atensyon — CarPlay: ang mga button ng kategorya ay ipinapakita sa screen ng kotse, ngunit ang input ng teksto ay hindi available, kaya ang UNTextInputAction ay awtomatikong nakatago sa CarPlay. Sa watchOS, ang mga kategorya ay hindi sinusuportahan — lahat ng notification ay ipinapakita nang walang mga action button.

Mga Madalas Itanong

Ilang kategorya ang maaaring irehistro sa iOS?

Walang limitasyon — hindi nagtatakda ang iOS ng limitasyon sa bilang ng UNNotificationCategory. Gayunpaman, sa pagsasanay ay inirerekomenda na hindi hihigit sa 10–15 kategorya upang hindi maging kumplikado ang pagproseso sa delegat. Bawat kategorya ay maaaring maglaman ng hanggang 4 na aksyon (button). Higit sa 4 na aksyon ay binabalewala ng system.

Paano iproseso ang pagpindot sa button ng kategorya?

Ipatupad ang delegat na UNUserNotificationCenterDelegate at ang pamamaraang didReceive response. Suriin ang response.actionIdentifier: UNNotificationDismissActionIdentifier — swipe para tanggalin, UNNotificationDefaultActionIdentifier — tap sa katawan, o ang iyong custom na identifier ng button. Para sa mga text button, ang teksto ay available sa pamamagitan ng response.userText.

Paano naiiba ang category sa thread-id?

Category — tinutukoy ang mga interactive na aksyon (button) para sa notification. Thread-id — nagpapangkat ng mga notification sa Notification Center ayon sa paksa. Ang parehong key ay tinukoy sa APNS payload. Ang category at thread-id ay hindi nauugnay: ang isang notification ay maaaring magkaroon ng kategorya nang walang thread-id at kabaliktaran.

Gumagana ba ang mga kategorya sa macOS?

Oo, ang UNNotificationCategory ay sinusuportahan sa macOS 10.14+ (Mojave) sa mga app na gumagamit ng UserNotifications framework. Ang pag-uugali ng mga kategorya sa macOS ay katulad ng iOS: sa pagpindot ng notification, ang mga button ay ipinapakita, ang pagproseso ay nagaganap sa pamamagitan ng UNUserNotificationCenterDelegate.

Kailangan bang i-update ang mga kategorya sa bawat pagsisimula?

Inirerekomenda na irehistro ang mga kategorya sa bawat pagsisimula ng app sa pamamagitan ng setNotificationCategories. Pinapalitan ng system ang lumang set ng mga kategorya ng bago sa bawat tawag. Kung hindi mo i-update, ang mga kategorya ay mananatili sa pagitan ng mga pagsisimula, ngunit kapag nagbago ang code, ang mga lumang kategorya ay maaaring hindi tumugma sa mga bago.

Buod

  • Notification Category — mekanismo ng iOS para sa pagdaragdag ng mga interactive na aksyon sa mga push notification
  • UNNotificationCategory — klase na pinagsasama ang identifier, array ng UNNotificationAction, at mga opsyon
  • UNTextInputAction — aksyon na may field ng input ng teksto para sa mabilisang sagot nang hindi binubuksan ang app
  • APNS payload — ang key na category sa dictionary na aps ay nag-uugnay ng notification sa naka-rehistrong kategorya
  • Hanggang 4 na aksyon — maximum na bilang ng mga button bawat kategorya, ang iba ay binabalewala ng system
  • Mga opsyon ng aksyon — foreground (pagbubukas ng app), destructive (pulang button), authenticationRequired
  • Pagkakaiba sa Android — iOS Category ay responsable para sa mga aksyon, Android Channel para sa kahalagahan at tunog

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din