Minden, amit mindig is szeretett volna tudni az iOS értesítéseiről

Elég kis riasztások ..?

Az értesítések arra szolgálnak, hogy tájékoztassák a felhasználókat, amikor új adatok állnak rendelkezésre az alkalmazásaik számára, akkor is, ha az alkalmazás nem fut az előtérben.

Például egy üzenetküldő alkalmazás értesítheti a felhasználót, ha új üzenet érkezett, és egy naptáralkalmazás tájékoztathatja a felhasználót egy közelgő találkozóról.

Az iOS-10 kiadásával az Apple vadonatúj keretrendszert vezetett be az értesítések támogatására, legyen az helyi vagy távoli.Ez a kiadás a személyre szabott értesítésekre összpontosított .

Időveszteség nélkül gyorsan térjünk át a részletekre.

Az értesítések típusai

Az értesítéseket nagyjából két kategóriába sorolhatjuk:

  • Helyi értesítések - az alkalmazás helyileg konfigurálja az értesítés részleteit, és továbbítja ezeket a rendszernek. Ezután a rendszer kezeli az értesítés kézbesítését, ha az alkalmazás nincs az előtérben.
  • Távoli értesítések - vállalatának egyik szerverével használja az adatokat a felhasználói eszközökre az Apple Push Notification szolgáltatáson (APN) keresztül.

A cikk lentebb megnézzük, hogyan tudjuk megszerezni mindkét értesítési típust. Kezdjük először ennek az új értesítési keretrendszernek a bevezetésével, amelyet felhasználhatunk az ügyünk érdekében.

Az iOS-10 újdonságai az értesítéseknél?

Az iOS-10 kiadásával az Apple két új keretet vezetett be az értesítések kezelésére:

  • Felhasználói értesítési keretrendszer - a helyi és a távoli értesítéseket is kezeli.
  • Felhasználói értesítések felhasználói felület - testreszabhatja a rendszer értesítési felületének megjelenését.

Ezt a két keretet és néhány platform-specifikus API-t fogunk használni az értesítések konfigurálásához.

A keretrendszerekkel együtt az Értesítési szolgáltatás alkalmazás kiterjesztéseBevezették azt is, amely lehetővé teszi a távoli értesítések tartalmának módosítását azok kézbesítése előtt.

Az Apple lehetővé teszi az értesítés felhasználói felületének testreszabását az Értesítés tartalom kiterjesztése révén is .

Túl sok az emlékezés? Igen ... biztosan az. De ne aggódj. Látni fogunk mindent lépésről lépésre a vonatkozó kóddal együtt. Csak nyugodtan. ?

Első dolgok - konfigurálja!

Kérjen engedélyt

Ahhoz, hogy alkalmazásunk bármiről értesítse a felhasználót, tudnunk kell, hogy az azt használó személy valóban ezt akarja-e. Mayby, nem szeretik, ha a telefonjuk csörög és folyamatosan figyelmeztetéseket jelenítenek meg? vagy talán valóban a frissítéseket akarják, de nem azt az irritáló hangot ... naáááá! ☠️

Tehát először is engedélyt kell kapnunk a felhasználótól, akiről értesíteni fogjuk. És ez nagyon egyszerű - csak két kódsor és kész:

A kódot a AppDelegate’smetódusba kell írnia - application:didFinishLaunchingWithOptions:mielőtt visszatérne belőle.

Kérjük, vegye figyelembe: Mivel a rendszer elmenti a felhasználó válaszát, requestAuthorization(options:completionHandler:)a későbbi indítások során a metódus- hívások nem kérik újra a felhasználót.

Kategóriák és műveletek hozzáadása - cselekvésre alkalmas értesítések

A felhasználói értesítési keretrendszer támogatja a kategóriák és műveletek hozzáadását az értesítésekhez.

Kategóriák - Adja meg az alkalmazás által támogatott értesítések típusait, és közölje a rendszerrel, hogyan szeretnénk az értesítést megjeleníteni.

Műveletek - Minden kategóriához legfeljebb négy művelet társulhat. A műveletek alapvetően egyéni gombok, amelyek megérintésével elvetik az értesítési felületet, és azonnali kezelés céljából továbbítják a kiválasztott műveletet az alkalmazáshoz.

Rendben! És mit jelent ez .. ??? Néhány kód segíthet a jobb megértésben:

A fenti kódban egyszerűen létrehoztunk egy INVITATION nevű kategóriátNégy különböző akciók - remindLater , elfogadja , hanyatlás , ésmegjegyzést .

A kategóriákat és műveleteket egyedileg azonosítják azonosítóik. Amikor egy kategóriájú értesítést kézbesítenek, a rendszer bemutatja az értesítést az adott kategóriához tartozó összes művelettel együtt, amint a felhasználó kibővíti. Így fog kinézni:?

Határozza meg az összes kategóriát és műveletet, amelyek alatt a application:didFinishLaunchingWithOptions:metódusban konfigurálta az értesítéseket .

Helyezze be vagy távolról az értesítés ütemezésekor vegye fel a kategóriaazonosítót (pl. INVITATION). A következő szakaszban megtudjuk, hogyan kell ezt megtenni.

A helyi értesítések ütemezése

Most, hogy befejeztük az értesítéseink konfigurálását, nézzük meg, hogyan ütemezhetünk be egyet az alkalmazáson belül .

A helyi értesítés ütemezéséhez csak három egyszerű lépés szükséges:

  1. Készítse elő a tartalmat
  2. Adjon hozzá egy ravaszt - amikor az értesítést ki kell indítani
  3. Ütemezze a szállításra

Gyorsan folytassuk a kódot, hogy ne keveredjünk össze mindennel, ami itt történik. LOL?

A fenti kódban a többi tartalommal együtt a categoryIdentifiercselekvésre alkalmas értesítéseket is támogattuk. Abban az esetben, ha ezt nem tesszük meg, a rendszer az alapértelmezett viselkedést alkalmazza.

Ez az. Csak erre van szükség. És igen, ez határozottan működik ... hehehe.? Próbálja ki, mielőtt továbblépne. A mintát innen töltheti le.

Kérjük, vegye figyelembe : Az alkalmazások másképp viselkednek a háttér és az előtér állapotában, amikor értesítést küldenek.

  1. Az alkalmazás nem fut / Alkalmazás a háttérben - a rendszer a helyi értesítéseket közvetlenül a felhasználónak jeleníti meg. Ehhez nem kapunk visszahívást az alkalmazásban.
  2. Alkalmazás az előtérben - a rendszer lehetőséget ad az alkalmazásnak az értesítés belső kezelésére. A rendszer alapértelmezés szerint elnémítja az előtérben lévő alkalmazások értesítéseit .

Amikor az alkalmazás előtérbe kerül, miközben az értesítés kézbesítésre kerül, megkapjuk a visszahívási UNUserNotificationCenterDelegate'smódszert - userNotificationCenter(_:willPresent:withCompletionHandler:)ahol eldöntheti, hogy az értesítést némán kezeli-e, vagy figyelmezteti a felhasználót.

Ne felejtsen el megfelelni AppDelegatea UNUserNotificationCenterDelegateprotokollnak és beállítani a UNUserNotificationCentermegosztott objektum delegáltjának a fájlban application:didFinishLaunchingWithOptions:.

let center = UNUserNotificationCenter.current()
center.delegate = self

Egyelőre elkészültünk a helyi értesítésekkel. Térjünk át arra, hogyan ütemezhetünk értesítést az alkalmazásunkon kívülről. Előtte nézzük meg, hogyan reagáljunk az egyéni műveletekre.

Válasz a felhasználói műveletekre

Értesítések konfigurálása? ✔ Értesítések ütemezése? ✔

Mi a helyzet az értesítés megérintésével vagy bármilyen egyedi művelettel az értesítésben? Hova vezet? Mindkét esetben a rendszer értesíti az alkalmazást a felhasználó választásáról.

Amikor a felhasználó bármilyen műveletet végrehajt az értesítésben, a válasz a UNUserNotificationCenterDelegate'smethod - re kerül userNotificationCenter(_:didReceive:withCompletionHandler:), ahol az egyes műveletekhez tartozó kezelést tudunk biztosítani.

Felhívjuk figyelmét: ha az alkalmazás nem fut, amikor válasz érkezik, a rendszer a háttérben indítja el az alkalmazás feldolgozását.

Távoli értesítések

A push értesítések vagy a távoli értesítések, függetlenül attól, hogy hívjuk őket, az egyik leggyakrabban használt, sok-sok használati esettel.

Legyen szó közösségi médiáról vagy naptárról, vagy bármelyik segédprogramról, szinte mindenhol láthatjuk őket. A híralkalmazásoktól, amelyek értesítenek minket a legfrissebb tartalmakról, egészen a Mediumig, amely figyelmeztet minket a legújabb közzétett cikkekre.

Elgondolkodtál már azon, hogy csinálják ezt? Helyi értesítések ?? Lehet ... ugyanazt csinálja - ugye? Lehet, hogy még egy konfigurációt elvégezhetünk magában a helyben, és működtethetjük?

De például a Medium nem fér hozzá az alkalmazáshoz a személyes eszközünkön, akkor hogyan tudta ütemezni az értesítéseket? Pontosan! Nem lehet. Ez valami más és nem csak a helyi.

Oké, mi lenne, ha valamikor elküldenénk az értesítést, és máskor megmutatnánk - ez megválaszolja a kérdésünket? Igen, biztosan így lesz. De hogyan lehet ezt megtenni? Távoli értesítések .

Pontosan ezt csinálják. Ez a funkció oldotta meg a „Naprakészség” NAGY PROBLÉMÁT.

Terminológia

  • APN-k - a távoli értesítések központi eleme. Ez egy felhőszolgáltatás, amely lehetővé teszi az Apple eszközökre telepített, jóváhagyott, harmadik féltől származó alkalmazások számára, hogy egy távoli szerverről push-értesítéseket küldjenek a felhasználóknak biztonságos kapcsolaton keresztül.
  • Eszköz token - Egy alkalmazás-specifikus token, amely globálisan egyedi és azonosít egy alkalmazás-eszköz kombinációt. Lehetővé teszi a szolgáltató, az APN-ek és az eszköz közötti kommunikációt.
  • Szolgáltató - Az a kiszolgáló, amely ténylegesen elküldi a távoli értesítést, beleértve az eszköz tokent és más információkat is az APN-eknek.

Fontos megjegyzés : Soha ne tárolja az eszköz tokenjeit az alkalmazásban. Ehelyett szerezze be őket a rendszerből, amikor szüksége van rájuk.

Az APN-ek új esemény tokent adnak ki az alkalmazásodba, amikor bizonyos események bekövetkeznek. Az eszköz token garantáltan eltérő lehet, például amikor a felhasználó biztonsági másolatból állít vissza egy eszközt, amikor a felhasználó új eszközre telepíti az alkalmazást, és amikor a felhasználó újratelepíti az operációs rendszert.

Amikor megkísérli az eszköz token beolvasását, de az nem változott, a letöltési módszer gyorsan visszatér.

Kérjük, vegye figyelembe: Az APN-k távoli értesítések küldéséhez egy nem futó alkalmazáshoz szükséges, hogy az alkalmazást legalább egyszer elindítsák.

Hogyan működik valójában

Az alábbiakban egy kis és gyors magyarázatot adunk arról, hogy az összes fenti technológia hogyan működik együtt szinkronban a távoli értesítések munkafolyamatának befejezéséhez.

  1. Appregisztrál az APN-eknél
  2. APN küld eszköz tokent Device együtt majd elküldi App
  3. Az alkalmazás elküldi ezt az eszköz tokent a Szolgáltatónak
  4. A szolgáltató értesítéseket küld az eszköz tokennel az APN-eknek, amelyek ezt követően az Eszközre küldik , majd elküldik az alkalmazásnak .

Ha az alkalmazásra vonatkozó értesítés bekapcsolt eszközzel érkezik, de az alkalmazás nem fut, a rendszer továbbra is megjelenítheti az értesítést. Ha az eszköz ki van kapcsolva, amikor az APN-ek értesítést küldenek, az APN-ek tartják az értesítést, és később próbálkoznak újra.

Kezelje az alkalmazásban

Most, hogy tisztában vagyunk azzal, hogy melyek a távoli értesítések, és mi szükséges azok működéséhez, térjünk át arra, hogyan tehetnénk alkalmazásunkat támogatóvá. Mert semmi sem történik önmagában? El kell készítenünk néhány konfigurációt, hogy működjenek.

A távoli értesítések kezeléséhez alkalmazásunknak:

  1. Engedélyezze a távoli értesítéseket a képességekben - csak egy kattintás, és készen áll ezzel a lépéssel. A képességek lapján a Xcode projekt lehetővé teszi a push értesítések lehetőséget. Győződjön meg arról, hogy a Push Notifications hozzá van adva a projekthez használt alkalmazásazonosítóhoz.

2. Regisztráljon az Apple Push Notification szolgáltatásban (APN), és kapjon egy alkalmazás-specifikus eszköz tokent

Az APN-eknél történő regisztráció kérése gyors és egyszerű. Csak adja hozzá az alábbi kódot a UIApplicationDelegate’smetódushoz - application:didFinishLaunchingWithOptions:mielőtt visszatérne belőle.

UIApplication.shared.registerForRemoteNotifications()

Most két lehetőség van: vagy sikeresen regisztrálunk, vagy a folyamat kudarcot vall.

A sikeres regisztráció után az APN-k alkalmazásspecifikus eszköz-tokent UIApplicationDelegate’sküldnek az eszközben a metódusban application:didRegisterForRemoteNotificationsWithDeviceToken:.

A Hiba esetén értesítse, megkaptuk a visszahívás UIApplicationDelegate’smódszer- application:didFailToRegisterForRemoteNotificationsWithError:.

3. Küldje el az eszköz tokent az értesítést szolgáltató szervernek

Mostantól kaptuk az eszköz tokent az APN-től . Most el kell küldenünk ezt a tokent szolgáltatónknak, amely használni fogja, miközben az értesítéseket eszközünkre tolja.

Mivel nincs szolgáltatónk, egyelőre használhatjuk az Easy APNs Provider szolgáltatást a push értesítések teszteléséhez. A továbbiakban meglátjuk, hogyan használhatjuk pontosan ezt az eszközt.

Egyelőre csak töltse le és telepítse a Mac számítógépére.

4. Támogassa a bejövő távoli értesítések kezelését

Megvan az eszköz tokenünk, és a szolgáltatónk is tud róla. Ezután a Szolgáltató elküldi az értesítést, beleértve ezt a tokent és a benne lévő egyéb információkat, és mi megkapjuk az eszközünkön.

Most mi? Mi lesz, amikor megérkezik? Hogyan fog megjelenni az eszközön? Mi lesz, ha megérintjük? Mi a helyzet az összes korábban konfigurált művelettel? Elhozhatjuk őket ide?

Túl sok kérdés ellNos, ne aggódj. Mindegyikre megválaszolunk egyenként.

Mi lesz, amikor megérkezik? Visszahívást kapunk a UIApplicationDelegate’smódszerben application(_:didReceiveRemoteNotification:fetchCompletionHandler:). Azt mondja az alkalmazásnak, hogy távoli értesítés érkezett, amely jelzi, hogy van adat, amelyet be kell szerezni.

Hogyan fog megjelenni az eszközön? Az alapértelmezett értesítési felülettel jelenik meg. Ha az értesítés hasznos terhe kategória szerint van konfigurálva , akkor cselekvésre alkalmas értesítésként jelenik meg az adott kategóriához csatolt összes művelettel együtt. A hasznos terhet a következő szakaszban tárgyaljuk.

Mi lesz, ha megérintjük? Ugyanaz, mint a helyi értesítések. UNUserNotificationCenterDelegate'smódszer - userNotificationCenter(_:didReceive:withCompletionHandler:)a válaszobjektummal hívják meg.

Kezelje a Szolgáltatónál

Áttekintettük a legtöbb olyan dolgot, amelyre szükségünk van a push értesítések integrálásához az alkalmazásunkba. Bár tudjuk, hogyan kell kezelni őket az alkalmazásban, még mindig kevés a kezelés a szolgáltatónál.

Megvan a szolgáltató. Tudja, hogy milyen eszköz tokent használjon, de önmagában ez nem jelenik meg az eszközünkön egy értesítéssel, amelynek címe és egyéb részletei vannak. Az sem, hogy bármelyik cselekedet megjelenik.

Tehát a szolgáltató értesítéseinek megadásához a következő elemek szükségesek:

  1. A készülék token
  2. APN-tanúsítvány - megszerezhetjük a fejlesztői fiókból
  3. Hasznos teher - minden egyedi adat, amelyet el szeretne küldeni az alkalmazásának, és tartalmaz információkat arról, hogy a rendszernek hogyan kell értesítenie a felhasználót. Ez egyszerűen egy JSON szótár néhány kulcsérték párral. Az alábbi ábra segíthet jobban megérteni.

Lássuk, mi minden van abban a JSON szótárban :

  1. apsszótár- a legfontosabb. Az Apple által definiált kulcsokat tartalmazza, és arra használják, hogy meghatározzák, hogy az értesítést fogadó rendszer hogyan figyelmeztesse a felhasználót.
  2. éberszótár- ez inkább magától értetődő tétel. Biztosítja az értesítés tartalmát.
  3. kategória - cselekvésre alkalmas értesítésekhez. Az adott kategóriához tartozó összes művelet elérhető lesz az értesítésekben.
  4. tartalom-elérhető- A háttérfrissítésről szóló értesítés támogatásához állítsa ezt a kulcsot 1-re.
  5. változtatható tartalmú- Ha engedélyezni szeretné az értesítés módosítását az Notification Service App Extension segítségével , állítsa 1-re.

Itt többet megtudhat a hasznos teher testreszabásáról az Ön igényei szerint. Ez egy hivatkozás azokra a kulcsokra, amelyeket hozzáadhatunk az aps szótárba

Értesítési szolgáltatás alkalmazás-kiterjesztése

Ezen a ponton tudjuk, hogy milyen távoli értesítésekhogy működnek, mi mindenre van szükségünk ahhoz, hogy működjenek - nagyjából minden! Mivel csak tökéletesen működtettük őket✌️.

Most az a kérdés, hogy mi van, ha a szolgáltatótól kapott értesítésben módosítani szeretnénk bizonyos tartalmakat, mielőtt azokat bemutatnánk az eszközön? Mi van, ha az értesítés tartalmaz valamilyen képlinket, amelyet le kell töltenünk, mielőtt eljuttatnánk a felhasználóhoz? Megtehetjük ezt azzal, amit már tudunk? Nincs hozzáférésünk a szolgáltatóhoz ... akkor hogy leszünk?

Valójában nem tehetjük. Nem változtathatunk azon, amit kapunk, de mindenképpen változtathatunk azon, amit bemutatunk.

Erről szól az Notification Service App Extension - a távoli értesítések tartalmának módosítása a szállítás előtt. Olyan egyszerű, mint amilyennek látszik. Nincs divatos kód, semmi. Ez tényleg nagyon egyszerű.

Értesítési szolgáltatás bővítmény hozzáadása a projekthez

Célként hozzáadják az xcode projekt kiterjesztéseit. Válassza a Fájl - Új - Cél - Értesítési szolgáltatás kiterjesztése lehetőséget.

Előfeltételek

Mielőtt elkezdenénk módosítani a tartalmat, van néhány korlátozás arra vonatkozóan, hogy mikor engedélyezhető a tartalom módosítása.

A tartalom csak akkor módosítható, ha:

  • A távoli értesítés riasztás megjelenítésére van konfigurálva.
  • A távoli értesítés aps szótára tartalmazza a mutábilis tartalom kulcsot, amelynek értéke 1.

Nem módosíthatjuk a néma értesítéseket, illetve azokat, amelyek csak hangot adnak ki, vagy jelvényt adnak az alkalmazás ikonjának.

Tehát az értesítések tartalmának bármilyen módosításához támogatni kell ezeket a feltételeket.

A tartalom módosítása

Az Xcode által biztosított alapértelmezett értesítési szolgáltatás kiterjesztés az UNNotificationServiceExtensionosztály egy alosztályát tartalmazza, amelyet módosítanunk kell.

Két módszert tartalmaz:

  1. didReceive(_:withContentHandler:)- végezze el az értesítés szükséges módosításait, és ha kész, értesítse a rendszert. Ennek a módszernek korlátozott ideje van (kb. 30 másodperc) a feladat végrehajtásához és a megadott befejezési blokk végrehajtásához.
  2. serviceExtensionTimeWillExpire()- Azt mondja nekünk, hogy a bővítmény hamarosan megszűnik. Adjon még egy utolsó esélyt a változásaink benyújtására. Ha nem frissítjük az értesítési tartalmat az idő lejárta előtt, a rendszer megjeleníti az eredeti tartalmat.

Nézzünk meg egy példát. Majd változik a test a hasznos teher a kódrészletére 7 a „ Cím: tengeri kagyló Apartmanok, Mumbai ”.

Mindkét módszer összes alapértelmezett megvalósítását maga a kiterjesztés biztosítja. Csak meg kell végeznünk a kívánt változtatásokat, például a fenti kódrészlet 8. sorában. Egyelőre csak egyetlen kódsor. Hasonlóképpen más mezőket is módosíthat az igényei szerint.

Értesítési tartalom kiterjesztése

A figyelemfelkeltő felhasználói felület mindig jobb, mint egy egyszerű alapértelmezett felhasználói felület. Néhány szín és néhány szép betűtípus hozzáadása soha nem rossz ötlet. Ugyanezt fogjuk tenni az értesítéseinkkel is, hogy Wow-nak tűnjenek !?

És és… Az Apple ismét itt van a megmentésünkért. Értesítési tartalom kiterjesztés . Ez egy egyedi felületet mutat be egy kézbesített helyi számáravagytávoli értesítés.

Értesítési tartalom kiterjesztés hozzáadása a projekthez

Azt hiszem, ezt már tudjuk. Ugye? Ugyanarra megyünk, mint amit tettünk az Értesítési szolgáltatás kiterjesztése hozzáadásakor . Válassza a Fájl - Új - Cél - Értesítési tartalom kiterjesztés lehetőséget.

Néhány kulcs hozzáadása a kiterjesztés Info.plistjéhez

A helyi és távoli értesítések egyedi felhasználói felületének támogatásához néhány módosítást kell végrehajtanunk a tartalom kiterjesztés Info.plist fájljában.

  1. UNNotificationExtensionCategory (követelmény) - Karakterlánc vagy karakterlánc-tömb. Minden karakterlánc tartalmazza az alkalmazás által deklarált kategória azonosítóját. A kategória , azt kell mondanom, valóban fontos az értesítéseknél. Az egyedi felhasználói felület csak a megadott kategóriákba tartozó értesítéseknél jelenik meg.
  2. UNNotificationExtensionInitialContentSizeRatio (igény) - lebegőpontos szám, amely a nézetvezérlő nézetének kezdeti méretét képviseli a magasság és a szélesség arányában kifejezve . Ez a nézetvezérlő, amelyet egyedi felhasználói felület készítéséhez fogunk használni. Ezt a következő szakaszban tárgyaljuk.
  3. UNNotificationExtensionDefaultContentHidden - ha igaz : csak az egyedi tartalmat jeleníti meg. Ha hamis : az egyéni + alapértelmezett tartalom megjelenítése.
  4. UNNotificationExtensionOverridesDefaultTitle - igaz : állítsa be az értesítés címét a nézetvezérlő címére. Ha hamis : az értesítés címe az alkalmazás nevére van állítva.

Itt van egy illusztráció, amely segíthet jobban megérteni a fenti kulcsokat.

A fenti ábrán az Info.plist kulcsai a következők:

  1. UNNotificationExtensionCategory - MEGHÍVÓ
  2. UNNotificationExtensionInitialContentSizeRatio - 1
  3. UNNotificationExtensionDefaultContentHidden - hamis
  4. UNNotificationExtensionOverridesDefaultTitle - hamis

Az egyedi felhasználói felület létrehozása

Az értesítési tartalom kiterjesztése UIViewControllera UNNotificationContentExtensionprotokollnak megfelelő számot nyújt . Ez a vezérlő bemutatja az értesítés felületét. A Storyboardkiterjesztésben lévő fájl egyetlen ViewControllert tartalmaz, amellyel bármilyen felhasználói felületet létrehozhatunk, amelyet az értesítéshez szeretnénk.

Miután létrehoztuk a felhasználói felületet, össze kell kapcsolnunk az elemeket NotificationViewControllera részletek kitöltése érdekében. Amikor egy értesítés várható kategóriával érkezik, visszahívást kapunk a UNNotificationContentExtension’s- módszerben didReceive(_:). Itt adhatunk részleteket a testreszabott felhasználói felületünkhöz.

Már majdnem elkészültünk az értesítésünk egyedi felhasználói felületével. Csak még 1 dolog. Mivel az egyéni felhasználói felület csatolva van az értesítések kategóriájához,amihez néhány cselekedet kapcsolódhat. És ... igazad van! ? A műveleteinket automatikusan elvégezzük mindenféle egyedi kezelés nélkül. Ragyogó!?

Tartalom + Gyönyörű felhasználói felület + Egyéni műveletek - Minden kész. Mit kérhetünk még? Apple, nagyszerű vagy !?

Egy utolsó pont: hozzáadhatjuk a kezelést a kiterjesztés egyéni műveleteihez is. A rendszer hívja didReceive(_:completionHandler:)a választott műveletekre válaszoló metódust. Ha a nézetvezérlőnk nem alkalmazza ezt a módszert, a rendszer a kiválasztott műveletet az alkalmazásához továbbítja kezelés céljából.

Ha megvalósul, akkor az összes lehetséges műveletet kezelnünk kell ebben a módszerben. Egy dolog fontos itt a completionbezárás.

completion: A művelet végrehajtása után végrehajtandó blokk. A megvalósítás során fel kell hívnia ezt a blokkot. A blokknak nincs visszatérési értéke.

A lezárás egyetlen dismisstípusú paramétert fogad el UNNotificationContentExtensionResponseOption. A következő lehetőségeket kínáljuk:

  1. doNotDismiss - Ne utasítsa el az értesítési felületet.
  2. dismiss - Az értesítési felület elvetése.
  3. dismissAndForwardAction--Az értesítési felület elvetése és az értesítés továbbítása az alkalmazásnak.

Ez összefoglalja az értesítéseinket. Túl sok mindenre emlékezni? A gyakorlat előrelépést jelent ? Próbálja meg most megtenni a saját értesítéseit!

Minta projekt

A mintaprojekt innen tölthető le.

Az Értesítési tartalom kiterjesztése mintaprojekt pedig itt található.

További irodalom

Ne felejtsd el elolvasni a többi cikkemet:

  1. Minden a Codable-ről a Swift 4-ben
  2. Színezd a GRADIENTS alkalmazással - iOS
  3. Az iOS 11 kódolása: Hogyan lehet áthúzni a gyűjteményekbe és táblákba
  4. Mindössze annyit kell tudni a mai kiterjesztésekről (Widget) az iOS 10 rendszerben
  5. UICollectionViewCell kiválasztása megkönnyítette .. !!

Ha kérdése merülne fel, nyugodtan írjon megjegyzést.