Ilmoitusten toiminnot ja luokat
Lisää ilmoituksiin vuorovaikutteisia toimintoja.
Ilmoitusten toiminnot ja luokat on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 4 oppituntia.
Interaktiiviset ilmoitukset
Ilmoitukset voivat tehdä muutakin kuin näyttää tekstiä — ne voivat tarjota painikkeita. Käyttäjä voi vastata viestiin, hyväksyä kutsun tai torkuttaa muistutuksen avaamatta sovellusta. Tämä toteutetaan ryhmittelemällä toiminnot kategorioiksi.
import UserNotifications
// Category = a set of actions
// Each delivered notification names its category
// so the system shows the right buttonsToiminnon määrittäminen
UNNotificationAction-toiminnolla on tunniste, jonka perusteella löydätte sen myöhemmin, painikkeessa näkyvä lokalisoitu otsikko sekä asetuksia, kuten .destructive tai .foreground, joka avaa sovelluksen.
import UserNotifications
let accept = UNNotificationAction(
identifier: "ACCEPT",
title: String(localized: "Accept"),
options: [.foreground])
let decline = UNNotificationAction(
identifier: "DECLINE",
title: String(localized: "Decline"),
options: [.destructive])Ryhmittely kategoriaksi
UNNotificationCategory kokoaa toiminnot kategoriatunnisteen alle. Toimintojen järjestys taulukossa on sama kuin painikkeiden järjestys. Rekisteröikää kategoriat kerran käynnistyksen yhteydessä ilmoituskeskuksessa.
import UserNotifications
let inviteCategory = UNNotificationCategory(
identifier: "INVITE",
actions: [accept, decline],
intentIdentifiers: [],
options: [])
UNUserNotificationCenter.current()
.setNotificationCategories([inviteCategory])Ilmoituksen liittäminen kategoriaan
Jotta painikkeet näkyvät, ilmoituksen sisällössä on asetettava categoryIdentifier rekisteröidyn kategorian tunnisteeksi. Etäpush-ilmoituksissa palvelin lähettää "category": "INVITE"-parin aps-sanakirjan sisällä.
import UserNotifications
let content = UNMutableNotificationContent()
content.title = String(localized: "New invite")
content.body = String(localized: "Ada invited you")
content.categoryIdentifier = "INVITE"Valitun toiminnon käsittely
Kun käyttäjä napauttaa painiketta, delegaatin didReceive response suoritetaan ja response.actionIdentifier sisältää toiminnon tunnisteen. Valitkaa sen perusteella oikea toiminto.
import UserNotifications
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse
) async {
switch response.actionIdentifier {
case "ACCEPT": print("accepted")
case "DECLINE": print("declined")
default: break
}
}Oletus- ja sulkemistunnisteet
Kaksi järjestelmän tunnistetta on aina käytettävissä: UNNotificationDefaultActionIdentifier tarkoittaa, että käyttäjä napautti ilmoituksen runkoa ja avasi sovelluksen, kun taas UNNotificationDismissActionIdentifier tarkoittaa, että käyttäjä sulki ilmoituksen. Käsitelkää nämä omien toimintojenne rinnalla.
import UserNotifications
func route(_ id: String) {
switch id {
case UNNotificationDefaultActionIdentifier:
print("opened the app")
case UNNotificationDismissActionIdentifier:
print("dismissed")
default:
print("custom action", id)
}
}Tekstinsyöttötoiminnot
UNTextInputNotificationAction näyttää ilmoituksen sisällä olevan tekstikentän, joka sopii erinomaisesti pikavastauksiin. Se lisää syöttökentälle painikkeen otsikon ja paikkamerkkitekstin.
import UserNotifications
let reply = UNTextInputNotificationAction(
identifier: "REPLY",
title: String(localized: "Reply"),
options: [],
textInputButtonTitle: String(localized: "Send"),
textInputPlaceholder: String(localized: "Message"))Kirjoitetun tekstin lukeminen
Tekstitoiminnon vastaus on tyyppiä UNTextInputNotificationResponse. Muuntakaa vastaus tähän tyyppiin, jotta voitte lukea userText-ominaisuuden eli käyttäjän kirjoittaman merkkijonon.
import UserNotifications
func handle(_ response: UNNotificationResponse) {
if let textResponse = response
as? UNTextInputNotificationResponse {
let message = textResponse.userText
print("reply:", message)
}
}Kategorian asetukset
Kategorian asetukset tarkentavat toimintaa: .customDismissAction välittää sulkemistapahtuman delegaatillenne, .hiddenPreviewsShowTitle näyttää otsikon silloinkin, kun esikatselut on piilotettu lukitusnäytössä, ja .allowInCarPlay sallii näytön CarPlayssa.
import UserNotifications
let category = UNNotificationCategory(
identifier: "MESSAGE",
actions: [reply],
intentIdentifiers: [],
options: [.customDismissAction,
.hiddenPreviewsShowTitle])
_ = categoryTausta- ja etualatoiminnot
Ilman .foreground-asetusta toiminto suorittaa käsittelijänne taustalla tuomatta sovellusta etualalle — tämä sopii esimerkiksi torkutukseen tai tykkäykseen. .foreground-asetuksella sovellus avautuu, jotta voitte näyttää käyttöliittymän. Valitkaa asetus sen perusteella, tarvitseeko käyttäjän nähdä jotain.
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)Täydellinen vastauspolku
Yhdistäkää tekstitoiminto, kategoria ja käsittelijä, joka erottaa kirjoitetun vastauksen tavallisesta avaamisesta. Tämä malli mahdollistaa viesteihin vastaamisen suoraan ilmoituksesta.
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
}
}Pikatarkistus
Kerratkaa, miten järjestelmä tietää, mitkä painikkeet näytetään.
Kertaus
Opitte interaktiivisista ilmoituksista:
- Luokaa
UNNotificationAction-toimintoja, mukaan lukienUNTextInputNotificationAction, ja ryhmitelkää neUNNotificationCategory-kategoriaksi. - Rekisteröikää kategoriat käynnistyksen yhteydessä ja asettakaa
categoryIdentifiersisällölle taicategorypush-ilmoitukseen, jotta painikkeet näkyvät. - Käsitelkää
response.actionIdentifier, mukaan lukien oletus- ja sulkemistunnisteet, ja lukekaa vastauksissauserText. - Jättäkää
.foregroundpois taustatoiminnoista, kuten torkutuksesta.
Opi Swift tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 122
- Oppitunnit
- 409
Usein kysytyt kysymykset
Onko oppitunti ”Ilmoitusten toiminnot ja luokat” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Ilmoitusten toiminnot ja luokat”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Ilmoitusten toiminnot ja luokat”?
Lisää ilmoituksiin vuorovaikutteisia toimintoja. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Ilmoitusten toiminnot ja luokat”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?
Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Push-ilmoituksiin rekisteröityminen
- Ilmoitussisältöjen käsittely
- Taustatehtävät ja päivitys
- Ilmoitusten toiminnot ja luokat