az iOS Fejlesztők szeretik elképzelni, hogy az emberek folyamatosan használják félelmetes alkalmazásukat. De természetesen a felhasználóknak néha be kell zárniuk az alkalmazást, és más tevékenységeket kell végezniük. A mosoda nem hajtogatja magát, tudod! Szerencsére a push értesítések lehetővé teszik a fejlesztők számára, hogy elérjék a felhasználókat, és kisebb feladatokat hajtsanak végre — még akkor is, ha a felhasználók nem használnak aktívan egy alkalmazást! Ebben a bemutatóban megtudhatja, hogyan kell:
- konfigurálja az alkalmazást push értesítések fogadására.
- mutassa meg azokat a felhasználóknak, vagy végezzen más feladatokat.
első lépések
mik azok a push értesítések? Ezek olyan üzenetek, amelyeket az Apple Push Notification service (APN) segítségével küld az alkalmazásnak, még akkor is, ha az alkalmazás nem fut, vagy a telefon alszik. Mire használhatja a push értesítéseket?
- jelenítsen meg egy rövid szöveges üzenetet, amelyet riasztásnak hívnak, amely felhívja a figyelmet valami újra az alkalmazásban.
- értesítési hang lejátszása.
- állítson be egy jelvényszámot az alkalmazás ikonján, hogy tudatja a felhasználóval, hogy vannak új elemek.
- adjon meg olyan műveleteket, amelyeket a felhasználó az alkalmazás megnyitása nélkül végezhet.
- Média melléklet megjelenítése.
- hallgasson, lehetővé téve az alkalmazás számára, hogy elvégezzen egy feladatot a háttérben.
- csoport értesítések szálak.
- a kézbesített értesítések szerkesztése vagy eltávolítása.
- futtassa a kódot az értesítés megváltoztatásához a megjelenítés előtt.
- egyéni, interaktív felhasználói felület megjelenítése az értesítéshez.
- és valószínűleg több.
Ez a bemutató számos ilyen felhasználást tartalmaz, amelyek segítenek a push értesítések létrehozásának megkezdésében az alkalmazásokban. A bemutató befejezéséhez a következőkre lesz szüksége:
- Xcode 11.4 vagy újabb. Az Xcode korábbi verziói nem támogatják a push értesítéseket a szimulátor használatával.
- egy Apple Developer Program tagság, hogy képes legyen összeállítani az alkalmazást a Push értesítések jogosultság.
push értesítések küldéséhez és fogadásához három fő feladatot kell végrehajtania:
- konfigurálja az alkalmazást, majd regisztrálja az APN-kkel.
- push értesítést küld egy kiszolgálóról bizonyos eszközökre APNs-en keresztül. Majd szimulálni, hogy Xcode.
- az alkalmazásban a visszahívások használatával fogadhatja és kezelheti a push értesítéseket.
a push értesítések küldése az alkalmazás szerver összetevőjének felelőssége. Sok alkalmazás harmadik feleket használ push értesítések küldésére. Mások egyéni megoldásokat vagy népszerű könyvtárakat használnak (például Houston). Csak akkor érintse meg a push üzenetek küldését ebben az oktatóanyagban, ezért ügyeljen arra, hogy nézze meg, hová menjen innen? szakasz építeni a tudás push értesítések.
az induláshoz töltse le a wendercast starter projektet az oktatóanyag tetején vagy alján található anyagok letöltése gombbal. WenderCast mindenki go-to forrás raywenderlich.com podcastok és friss hírek.
az indító mappában nyissa meg a WenderCast-ot.xcodeproj. Válassza ki a Wendercast lehetőséget a projekt navigátorban, majd válassza ki a WenderCast célt. Az Általános & képességek lapon válassza ki a fejlesztői csapatot. Építsd és fuss egy szimulátor.
raywenderlich.com podcastok segítségével a felhasználók játszani őket. De ez nem hagyja, hogy a felhasználók tudják, ha egy új podcast elérhető, a hírek lap üres! Hamarosan megoldja ezeket a problémákat a push értesítések erejével.
Push értesítések küldése és fogadása
az alkalmazás konfigurálása
a biztonság nagyon fontos a push értesítések esetében. Nem akarja, hogy bárki más push értesítéseket küldjön a felhasználóknak az alkalmazáson keresztül. Több feladatot kell végrehajtania az alkalmazás konfigurálásához, hogy biztonságosan megkapja a push értesítéseket.
A Push értesítési szolgáltatás engedélyezése
először meg kell változtatnia a csomag azonosítóját. Az Xcode-ban jelölje ki a Wendercast-ot a projekt navigátorban, majd válassza ki a WenderCast célt. Válassza az Általános lehetőséget, majd változtassa meg a Csomagazonosítót valami egyedire, így az Apple push értesítési kiszolgálója átirányíthatja az alkalmazást.
ezután létre kell hoznia egy alkalmazásazonosítót fejlesztői fiókjában, és engedélyeznie kell a push értesítési jogosultságot. Az Xcode-nak egyszerű módja van erre: a WenderCast cél még mindig kiválasztva kattintson a & képességek fülre, majd kattintson a + képesség gombra. Írja be a” push ” elemet a Szűrő mezőbe, majd nyomja meg az Enter billentyűt.
a push értesítések jogosultságának hozzáadása után a projektnek így kell kinéznie:
a színfalak mögött ez létrehozza az alkalmazás azonosítóját, majd hozzáadja a push értesítések jogosultságát. Bejelentkezhet az Apple fejlesztői központba, hogy ellenőrizze ezt:
Ez minden, amit most konfigurálnia kell. Ön készen áll, hogy fokozza az alkalmazást.
felhasználói értesítések engedélyének kérése
két lépést tesz a push értesítések regisztrálásához. Először meg kell szereznie a Felhasználó engedélyét az értesítések megjelenítéséhez. Ezután regisztrálhatja az eszközt távoli (push) értesítések fogadására. Ha minden jól megy, akkor a rendszer egy eszköz tokent biztosít Önnek, amelyet az eszköz “címének” tekinthet.
a WenderCast alkalmazásban az alkalmazás indítása után azonnal regisztrál a push értesítésekre. Először kérjen felhasználói engedélyeket.
nyissa meg az AppDelegate alkalmazást.swift, majd adja hozzá a következő, hogy a tetején a fájl:
import UserNotifications
ezután adja hozzá a következő módszert a AppDelegate
:
func registerForPushNotifications() { //1 UNUserNotificationCenter.current() //2 .requestAuthorization(options: ) { granted, _ in //3 print("Permission granted: \(granted)") }}
mit csinál ez a kód:
-
UNUserNotificationCenter
kezeli az összes értesítéssel kapcsolatos tevékenységet az alkalmazásban, beleértve a push értesítéseket is. - meghívja a
requestAuthorization(options:completionHandler:)
– t, hogy (kitalálta) engedélyt kérjen az értesítések megjelenítésére. Az átadottoptions
jelzi az alkalmazás által használni kívánt értesítések típusát — itt riasztást, hangot és jelvényt kér. - a befejezési kezelő kap egy Bool, amely jelzi, hogy engedély sikeres volt. Ebben az esetben egyszerűen kinyomtatja az eredményt.
requestAuthorization(options:completionHandler:)
beállításai tartalmazhatják a UNAuthorizationOptions
:
- bármely kombinációját .jelvény: jelenítsen meg egy számot az alkalmazás ikonjának sarkában.
- .Hang: Hang lejátszása.
- .figyelmeztetés: szöveges értesítés megjelenítése.
- .carPlay: Értesítések megjelenítése a CarPlay alkalmazásban.
- .ideiglenes: nem megszakító értesítések közzététele. A felhasználó nem kap engedélyt, ha csak ezt az opciót használja, de az értesítések csak csendben jelennek meg az Értesítési központban.
- .providesAppNotificationSettings: jelezze, hogy az alkalmazásnak saját felhasználói felülete van az értesítési beállításokhoz.
- .criticalAlert: hagyja figyelmen kívül a néma kapcsolót, és ne zavarja. Különleges jogosultságra lesz szüksége az Apple-től, hogy ezt a lehetőséget használja, mert csak nagyon különleges felhasználási esetekre vonatkozik.
adja hozzá a következőket aapplication(_:didFinishLaunchingWithOptions:)
vége előtt, közvetlenül a return
:
registerForPushNotifications()
Calling registerForPushNotifications()
itt biztosítja, hogy az alkalmazás megpróbálja regisztrálni push értesítések bármely indításakor.
Build and run. Amikor az alkalmazás elindul, olyan kérést kell kapnia, amely engedélyt kér az értesítések küldésére.
érintse meg az engedélyezést, és poof! Az alkalmazás most értesítéseket jeleníthet meg. Zseniális! De mi van, ha a felhasználó elutasítja az engedélyeket? Adja hozzá ezt a módszert AppDelegate
:
func getNotificationSettings() { UNUserNotificationCenter.current().getNotificationSettings { settings in print("Notification settings: \(settings)") }}
először megadta a kívánt beállításokat. Ez a módszer visszaadja a felhasználó által megadott beállításokat. Egyelőre kinyomtatja őket, de hamarosan visszatér ide, hogy többet tegyen ezzel.
In registerForPushNotifications()
, cserélje ki a hívást a requestAuthorization(options:completionHandler:)
a következőkre:
UNUserNotificationCenter.current() .requestAuthorization( options: ) { granted, _ in print("Permission granted: \(granted)") guard granted else { return } self?.getNotificationSettings() }
hozzáadta a hívást agetNotificationSettings()
– hez. Ez azért fontos, mert a felhasználó bármikor beléphet a Beállítások alkalmazásba, és módosíthatja az értesítési engedélyeket. Aguard
elkerüli a hívás kezdeményezését olyan esetekben, amikor az engedélyt nem adták meg.
regisztráció APNs
most, hogy engedélyekkel rendelkezik, regisztrál a távoli értesítésekre!
In getNotificationSettings()
, adja hozzá a következőket a print
a bezáráson belül:
guard settings.authorizationStatus == .authorized else { return }DispatchQueue.main.async { UIApplication.shared.registerForRemoteNotifications()}
itt ellenőrizheti a authorizationStatus
.authorized
: a felhasználó értesítési engedélyeket adott meg. Ha igen, akkor hívja a UIApplication.shared.registerForRemoteNotifications()
– ot, hogy elindítsa a regisztrációt az Apple Push értesítési szolgáltatással. Ezt fel kell hívnia a fő szálon, vagy futásidejű figyelmeztetést kap.
a AppDelegate
:
ezt a módszert az iOS hívja, amikor a registerForRemoteNotifications()
sikeres. A kód lehet, hogy rejtélyesnek tűnik, de egyszerűen csak egy kapott deviceToken
értéket vesz fel, majd karakterláncra konvertálja. Az eszköz token ennek a folyamatnak a gyümölcse. Ez által nyújtott APN egyedileg azonosítja ezt az alkalmazást az adott eszközön.
push értesítés küldésekor a kiszolgáló tokeneket “címekként” használ a megfelelő eszközökhöz való szállításhoz. Az alkalmazásban most elküldené ezt a tokent a kiszolgálónak, hogy elmentse, majd később felhasználja az értesítések küldésére.
most adja hozzá a következőket:
func application( _ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) { print("Failed to register: \(error)")}
ezt a módszert iOS hívja, ha registerForRemoteNotifications()
sikertelen. Egyelőre csak kiírja a hibát.
ennyi! Építs és fuss. Mivel szimulátoron vagy, megjelenik egy Failed to register
hiba. Ezt egyelőre figyelmen kívül hagyhatja. Később, amikor valódi eszközön fut, egy tokent kell kapnia a konzol kimenetén. Íme egy példa:
szimulált Push Értesítés küldése
használjon szövegszerkesztőt az első nevű fájl létrehozásához.apn, amely akkor adja át az Xcode simctl segédprogram. Illessze be a következő JSON szöveget, majd mentse el a fájlt.
ennek a JSON-nak a szerkezetét a következő részben ismertetjük. Türelem, szöcske.
készítse el és futtassa újra az alkalmazást a szimulátoron, majd háttérezze be az alkalmazást, vagy zárja le az eszközt. Az alkalmazás még nem képes feldolgozni a push értesítéseket az előtérben.
a simctl használatához ismernie kell az alkalmazást futtató szimulátor eszközazonosítóját. Ha csak egy eszköz fut a szimulátorban, akkor az azonosító helyett a rendszerindítást használhatja. Az azonosító megszerzéséhez az Xcode-ban válassza a Windows ▸ eszközök és szimulátorok lehetőséget, majd válassza ki a tetején található szimulátorok fület, majd a bal oldali listából válassza ki a használt szimulátort. Az egérrel másolja az azonosítót. Lehet, hogy ki kell szélesítenie a párbeszédpanelt, hogy teljes mértékben láthassa.
nyissa meg a terminál alkalmazást, majd váltson arra a könyvtárra, ahová először mentett.apn. Ezután írja be a következő parancsot a rendszerindítás vagy az eszközazonosító Xcode helyett device_identifier: xcrun simctl push device_identifier bundle_identifier first.apn
. Cserélje ki a device_identifier
elemet az Xcode — ból másolt eszközazonosítóval, majd cserélje ki a bundle_identifier
elemet az alkalmazás csomagazonosítójával-amelyet a projekt első beállításakor használt. Íme egy példa:
futtassa a parancsot, majd megjelenik a push értesítés a szimulátoron!
érintse meg az értesítést, hogy indítsa el az alkalmazást.
nem olyan jó? :]
egy alapvető Push értesítést nézve
mielőtt továbblépne a push értesítések kezelésére, nézze meg az elküldött értesítés testét:
{ "aps": { "alert": "Breaking News!", "sound": "default", "link_url": "https://raywenderlich.com" }}
a hasznos teher egy JSON szótár, amely legalább egy elemet, AP-t tartalmaz, amely szintén szótár. Ebben a példában a aps
tartalmazza a alert
sound
és link_url
mezőket. Amikor a készülék megkapja ezt a push értesítést, figyelmeztető nézetet mutat a ” Breaking News!”és a szokásos hanghatást játssza.
link_url
valójában egy egyéni mező. Az egyéni mezőket hozzá lehet adni a hasznos teherhez, így azok eljutnak az alkalmazáshoz. Mivel még nem kezeli az alkalmazáson belül, ez a kulcs/érték pár jelenleg semmit sem tesz.
link_url
, a aps
szótárbejegyzésnek kell lennie, nem pedig annak belsejében. Még mindig működik, ha behelyezi, de mindig javasoljuk, hogy ragaszkodjon az Apple dokumentációjához, és ezt kijavítja a bemutató következő frissítésében. nyolc beépített kulcs van, amelyeket hozzáadhat a aps
szótárhoz (további információkért lásd a hivatalos hasznos kulcs hivatkozást):
- alert: Ez lehet egy karakterlánc, mint az előző példában, vagy egy szótár. Szótárként lokalizálhatja a szöveget, vagy megváltoztathatja az értesítés egyéb aspektusait.
- jelvény: ez egy szám, amely megjelenik az alkalmazás ikon sarkában. Eltávolíthatja a jelvényt, ha ezt 0-ra állítja.
- hang: az alkalmazásban található egyéni értesítési hang fájl neve. Ezeknek 30 másodpercnél rövidebbnek kell lenniük.
- thread-id: használja ezt a kulcsot az értesítések csoportosításához.
- Kategória: ez határozza meg az értesítés kategóriáját, amelyet az értesítés egyedi műveleteinek megjelenítésére használnak. Hamarosan felfedezed.
- tartalom-elérhető: ha ezt a kulcsot
1
értékre állítja, a push értesítés elnémul. Erről az alábbi Csendes Push értesítések részben olvashat. - mutable-content:a kulcs
1
beállításával az alkalmazás módosíthatja az értesítést a megjelenítés előtt. - target-content-id: ez az előre hozott ablak azonosítója.
ezeken kívül annyi egyéni adatot adhat hozzá, amennyit csak akar, mindaddig, amíg a hasznos adat nem haladja meg a 4,096 bájtot.
miután már volt elég szórakoztató próbálja ki ezeket a lehetőségeket, majd küld push értesítéseket a szimulátor, lépni a következő szakasz!
push értesítések kezelése
ebben a szakaszban megtudhatja, hogyan hajthat végre műveleteket, amikor az alkalmazás értesítést kap, majd amikor a felhasználók megérintik őket.
annak megértése, hogy mi történik, ha Push értesítést kap
amikor az alkalmazás push értesítést kap, az iOS a UIApplicationDelegate
metódust hívja.
akkor kell kezelni egy értesítést eltérő attól függően, hogy milyen állapotban az alkalmazás, ha az értesítést kapott:
- Ha az alkalmazás nem fut a felhasználó elindítja megérinti a push notification, iOS halad a bejelentés, hogy az alkalmazás a
launchOptions
aapplication(_:didFinishLaunchingWithOptions:)
. - ha az alkalmazás az előtérben vagy a háttérben fut, a rendszer értesíti az alkalmazást a
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
hívással. Amikor a felhasználó megnyitja az alkalmazást a push értesítés megérintésével, az iOS újra felhívhatja ezt a módszert, így frissítheti az UI-t, és megjelenítheti a releváns információkat.
az első esetben a wendercast létrehozza a hírelemet, majd közvetlenül a hírek fülre nyílik. Az AppDelegate.swift, adja hozzá a következő kódot a application(_:didFinishLaunchingWithOptions:)
végéhez, közvetlenül a visszatérési nyilatkozat előtt:
// Check if launched from notificationlet notificationOption = launchOptions?// 1if let notification = notificationOption as? , let aps = notification as? { // 2 NewsItem.makeNewsItem(aps) // 3 (window?.rootViewController as? UITabBarController)?.selectedIndex = 1}
Ez az, amit csinálsz:
- ellenőrizze, hogy a
UIApplication.LaunchOptionsKey.remoteNotification
launchOptions
. Ha igen, akkor az alkalmazást egy értesítésből indították el. Ez tartalmazza az elküldött push értesítési hasznos terhet. - mivel a
aps
szótár létezik, hozzon létre egyNewsItem
vele. - módosítsa a fülvezérlő kiválasztott lapját a hírek szakaszra.
ennek teszteléséhez szerkesztenie kell a WenderCast sémáját. Először építsd meg a legújabb kódot a szimulátorra. Ezután kattintson a WenderCast sémára, majd válassza a rendszer szerkesztése lehetőséget…:
Válassza ki a Futtatás a sávot, akkor a Info fülön válassza ki Várni futtatható indul:
Ez az opció biztosítja, hogy a debugger várja az alkalmazás elindítása után először telepítése csatolni kell.
Build and run. Miután befejezte a telepítést, küldjön további híreket a xcrun simctl
használatával, mint korábban. Érintse meg az értesítést, majd az alkalmazás megnyílik a hírek:
kezelni a helyzetet, amikor az alkalmazás fut, amikor egy push értesítést kapott, add a következő AppDelegate
:
func application( _ application: UIApplication, didReceiveRemoteNotification userInfo: , fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { guard let aps = userInfo as? else { completionHandler(.failed) return } NewsItem.makeNewsItem(aps)}
Ez megpróbálja kivonni az AP-k a mellékelt
userInfo
objektum, és ha sikeres, létrehoz egy újNewsItem
.
mivel az iOS ezt a módszert hívja az alkalmazás futtatásakor, meg kell változtatnia a sémát az alkalmazás automatikus elindításához a teszteléshez. A Rendszerszerkesztőben az Indítás alatt válassza az Automatikus lehetőséget.
Build and run. Tartsa az alkalmazást az előtérben, valamint a hírek lapon. Küldj egy másik hír push értesítést, és nézd meg, ahogy megjelenik a takarmány:
Ez az! Az alkalmazás most varázslatosan kap híreket, mint ez történik. :]
működő actionable értesítések
Actionable értesítések segítségével hozzá egyéni gombokat az értesítést is. Lehet, hogy észrevette ezt az e-mail értesítésekben vagy tweetekben, amelyek lehetővé teszik, hogy “válaszoljon” vagy “kedvenc” a helyszínen.
az alkalmazás meghatározhatja a végrehajtható értesítéseket, amikor kategóriákkal regisztrál az értesítésekre. Az értesítés minden kategóriájának lehet néhány előre beállított egyéni művelet.
miután regisztrált, a szerver beállíthatja a push értesítés kategóriáját. A megfelelő műveletek a felhasználó számára elérhetők lesznek, amikor megkapják.
a Wendercast esetében egy hírkategóriát definiál egy nézet nevű egyéni művelettel. Ez a művelet lehetővé teszi a felhasználók számára, hogy megtekinthessék a hír cikket az alkalmazásban, ha úgy döntenek.
InregisterForPushNotifications()
, illessze be a következőket közvetlenül az őr alatt és a getNotificationSettings()
:
// 1let viewAction = UNNotificationAction( identifier: Identifiers.viewAction, title: "View", options: )// 2let newsCategory = UNNotificationCategory( identifier: Identifiers.newsCategory, actions: , intentIdentifiers: , options: )// 3UNUserNotificationCenter.current().setNotificationCategories()
:
- hozzon létre egy új értesítési műveletet a gomb címnézetével, amely megnyitja az alkalmazást az előtérben, amikor elindul. A műveletnek külön azonosítója van, amelyet az iOS az ugyanazon értesítésen végzett egyéb műveletek megkülönböztetésére használ.
- határozza meg a hírkategóriát, amely tartalmazza a nézet műveletet. Ennek külön azonosítója is van, amelyet a hasznos adatnak tartalmaznia kell annak meghatározásához, hogy a push értesítés ebbe a kategóriába tartozik-e.
- regisztrálja az új actionable értesítést a
setNotificationCategories
hívással.
készítse el és futtassa az alkalmazást az új értesítési beállítások regisztrálásához.
háttér az alkalmazást, majd küldje el a következő hasznos keresztül xcrun simctl
segédprogram:
{ "aps": { "alert": "Breaking News!", "sound": "default", "link_url": "https://raywenderlich.com", "category": "NEWS_CATEGORY" }}
amikor az értesítés megjelenik, húzza le, hogy felfedje a Nézet akció:
p > szép! A nézet megérintése elindítja a WenderCast-ot, de még nem csinál semmi izgalmasat. Ahhoz, hogy megjelenítse a hírelemet, meg kell tennie még néhány eseménykezelést a delegátusban.
értesítési műveletek kezelése
amikor egy értesítési művelet aktiválódik, UNUserNotificationCenter
tájékoztatja küldöttjét. Vissza AppDelegate.swift, adja hozzá a következő osztálykiterjesztést a fájl aljára:
// MARK: - UNUserNotificationCenterDelegateextension AppDelegate: UNUserNotificationCenterDelegate { func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void ) { // 1 let userInfo = response.notification.request.content.userInfo // 2 if let aps = userInfo as? , let newsItem = NewsItem.makeNewsItem(aps) { (window?.rootViewController as? UITabBarController)?.selectedIndex = 1 // 3 if response.actionIdentifier == Identifiers.viewAction, let url = URL(string: newsItem.link) { let safari = SFSafariViewController(url: url) window?.rootViewController? .present(safari, animated: true, completion: nil) } } // 4 completionHandler() }}
Ez a visszahívás, amelyet akkor kap, amikor az alkalmazás egyéni művelet miatt megnyílik. Úgy tűnhet, hogy sok minden történik, de itt nincs sok új:
- Szerezd meg a
userInfo
szótárt. - hozzon létre egy
NewsItem
– t aaps
szótárból, majd keresse meg a hírek lapot. - ellenőrizze a
actionIdentifier
. Ha ez a “Nézet”művelet, és a link egy érvényes URL, akkor a linket egySFSafariViewController
– ban jeleníti meg. - hívja a befejezési kezelőt, amelyet a rendszer átad önnek.
van egy utolsó bit: be kell állítania a küldöttet a UNUserNotificationCenter
. Adja hozzá ezt a sort a application(_:didFinishLaunchingWithOptions:)
tetejére:
UNUserNotificationCenter.current().delegate = self
Build and run. Zárja be az alkalmazást újra, majd küldje el egy másik hír értesítést a következő hasznos teher:
{ "aps": { "alert": "New Posts!", "sound": "default", "link_url": "https://raywenderlich.com", "category": "NEWS_CATEGORY" }}
Húzza le az értesítést, majd érintse meg a Nézet műveletet, majd meglátod, WenderCast jelen egy Safari-Nézet-vezérlő után elindul:
Gratulálok, már végre egy érdemi bejelentés! Küldjön még néhányat, majd próbálja meg megnyitni az értesítést különböző módon, hogy megnézze, hogyan viselkedik.
valódi eszközre Küldés
ha nem szeretne push értesítéseket küldeni egy valódi eszközre, vagy még nincs szüksége csendes push értesítésekre, akkor kihagyhatja ezt a részt, és ide léphet?
Ha azonban érezni szeretné, hogyan küldhet push értesítéseket egy valódi eszközre, majd próbálja meg a silent push-t, akkor további beállításokat kell végrehajtania. Töltse le a PushNotifications segédprogramot. Ezt a segédprogramot fogja használni, hogy értesítéseket küldjön egy valódi eszközre. A telepítéshez kövesse a telepítéshez szükséges utasításokat. Különös figyelmet kell fordítani az alkalmazás megnyitására, mert meg kell változtatnia néhány beállítást a segédprogram futtatásához.
menjen az Apple Developer Member Center-hez, majd jelentkezzen be.
a push értesítések küldéséhez hitelesítési kulcs szükséges. A tagközpontban válassza a tanúsítványok, azonosítók & profilok lehetőséget, majd keresse meg a gombokat a bal oldali ablaktáblán. A kulcsok jobb oldalán egy + gomb található. Kattintson rá, hogy hozzon létre egy új kulcsot.
adjon nevet a kulcsnak, például Push Notification billentyűt. A Kulcsszolgáltatások részben válassza az Apple Push Notifications service (APNs) lehetőséget.
kattintson a Folytatás gombra, majd regisztráljon a következő képernyőn az új kulcs létrehozásához. Koppintson A Letöltés Elemre. A letöltött fájlnak olyan neve lesz, mint az AuthKey_4SVKWF966R.p8. Kövesse nyomon ezt a fájlt-szüksége lesz rá, hogy küldje el az értesítéseket! A fájlnév 4svkwf966r része a Kulcsazonosító. Erre is szükséged lesz.
az utolsó darab, amire szüksége van, a csapat azonosítója. Keresse meg a tagközpont tagsági adatai oldalát, hogy megtalálja.
megcsináltad! Az új kulcs, akkor most készen áll, hogy küldje el az első push értesítést! Csak még egy dologra van szükséged.
futtassa az alkalmazást a valódi eszközén, majd másolja át az eszköz tokent a hibakereső konzolról, majd készítse el.
Pushnotifications indítása és a következő lépések végrehajtása:
- a hitelesítés alatt válassza a Token lehetőséget.
- kattintson a Select P8 gombra, majd válassza ki a .p8 fájl az előző szakaszból.
- adja meg Kulcsazonosítóját és Csapatazonosítóját a megfelelő mezőkben.
- A Body alatt adja meg az alkalmazás Csomagazonosítóját és az eszköz tokenjét.
- változtassa meg a kérési testet, hogy így nézzen ki:
kattintson a Küldés gombra a PushNotifications alkalmazásban.
Meg kell kapni a push notification:
Problémamegoldás Gyakori Kérdések
Itt van egy pár problémák merülhetnek fel:
- értesítések érkezik, de nem minden: Ha sok üzenetet küld a push értesítések egyszerre csak megjelenik a csak néhány, ne félj! Ez a tervezés. APNs fenntartja a QoS (szolgáltatás minősége) sorban minden eszköz. Ennek a sornak a mérete 1, tehát ha több értesítést küld, az utolsó értesítés felülbírálódik.
- probléma csatlakozás Push értesítési szolgáltatás: az egyik lehetőség lehet, hogy van egy tűzfal blokkolja a portok által használt APN. Győződjön meg róla, hogy feloldja ezeket a portokat.
Csendes Push értesítések használata
a Csendes push értesítések csendesen felébreszthetik az alkalmazást, hogy elvégezzenek néhány feladatot a háttérben. WenderCast használhatja ezt a funkciót, hogy csendben frissítse a podcast listát.
megfelelő szerverkomponens esetén ez nagyon hatékony lehet. Az alkalmazásnak nem kell folyamatosan lekérdeznie az adatokat. Csendes push értesítést küldhet, amikor új adatok állnak rendelkezésre.
az induláshoz válassza ki újra a WenderCast célt. Most kattintson az aláírás & képességek fülre, majd adja hozzá a háttér módok képességét. Ezután ellenőrizze a távoli értesítések opciót:
most, az alkalmazás felébred a háttérben, amikor megkapja az egyik ilyen push értesítések.
az AppDelegate alkalmazásban.swift, find application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
. Cserélje ki a hívást NewsItem.makeNewsItem()
a következőkre:
// 1if aps as? Int == 1 { let podcastStore = PodcastStore.sharedStore // 2 podcastStore.refreshItems { didLoadNewItems in // 3 completionHandler(didLoadNewItems ? .newData : .noData) }} else { // 4 NewsItem.makeNewsItem(aps) completionHandler(.newData)}
megy át a kódon:
- ellenőrizze, hogy a
content-available
értéke 1. Ha igen, ez egy csendes értesítés. - frissíti a podcast listát, amely aszinkron hálózati hívás.
- amikor a frissítés befejeződött, hívja a befejezési kezelőt, hogy tudatja a rendszerrel, hogy az alkalmazás új adatokat töltött-e be.
- Ha ez nem csendes értesítés, akkor ez egy hírelem, ezért készítsen hírelemet.
mindenképpen hívja a befejezési kezelőt a becsületes eredménnyel. A rendszer méri az alkalmazás által a háttérben használt akkumulátor-fogyasztást és időt, és szükség esetén korlátozhatja az alkalmazást.
Ez minden, ami van rá. Tesztelni, építeni és futtatni, előtérben az alkalmazás, majd nyomja meg a következő hasznos keresztül PushNotifications segédprogram:
{ "aps": { "content-available": 1 }}
ha minden jól megy, semmi sem történhet, kivéve, ha egy új podcastot csak hozzáadtak a távoli adatbázishoz. A várt módon Futtatott kód megerősítéséhez állítson be egy töréspontot a application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
mezőbe, majd lépjen át rajta az értesítés elküldése után.
hová menjen innen?
Gratulálunk! Befejezted ezt a bemutatót, és a wendercast egy teljes funkcionalitású alkalmazás push értesítésekkel!
letöltheti a befejezett projektet a bemutató tetején vagy alján található anyagok letöltése gombbal.
szeretne mélyebben belemerülni mindenbe, amit a push értesítésekkel tehet, például egyedi UI-k építésével vagy kritikus figyelmeztetések küldésével? A push értesítések útmutatók könyv megtanítja a fejlett funkciók push értesítések.
egy másik erőforrás a Push értesítések bemutatója iOS: Rich Push értesítések bemutatója.
annak ellenére, hogy a push értesítések fontos részét képezik a modern alkalmazásoknak, nagyon gyakori, hogy a felhasználók elutasítják az alkalmazás engedélyeit, ha túlzásba viszik az értesítéseket. De átgondolt tervezés, push értesítések tartani a felhasználók jönnek vissza az alkalmazás újra meg újra!
Ez a macska push értesítést kapott arról, hogy vacsorája készen áll!
remélem, hogy élvezte ezt a push értesítéseket bemutató. Ha bármilyen kérdése van, nyugodtan hagyja őket az alábbi vitafórumban.
raywenderlich.com Heti
raywenderlich.com a hírlevél a legegyszerűbb módja annak, hogy naprakész legyen mindent, amit mobil fejlesztőként tudnia kell.
kap egy heti digest a mi útmutatók, tanfolyamok, valamint kap egy ingyenes mélyreható e-mail tanfolyam, mint egy bónusz!
átlagos értékelés
4.9/5
adjon hozzá egy értékelést ehhez a tartalomhoz
jelentkezzen be egy értékelés hozzáadásához