Configurarea notificărilor Push pe iOS

Introducere

Apple a introdus inițial notificări push pentru a permite aplicațiilor să răspundă la evenimente dacă aplicația nu rulează în prim-plan. Cu toate acestea, sistemul de operare și dispozitivele iOS s-au schimbat semnificativ în ultimii ani, iar aplicațiile nu trebuie să se bazeze exclusiv pe notificările push pentru a efectua activități în fundal.

Acest lucru nu înseamnă că notificările push nu mai sunt utile deși. Notificările push sunt excelente pentru a notifica o aplicație despre evenimente importante și pentru a menține utilizatorii aplicației dvs. angajați. De asemenea, nu uitați că o aplicație încă nu are permisiunea să ruleze în fundal fără restricții. Cu alte cuvinte, scopul original al notificărilor push este încă valabil.

Chiar și cei mai experimentați dezvoltatori iOS își zgârie capul din când în când când trebuie să se ocupe de aprovizionarea cu aplicații. Din păcate, noile notificări adaugă acestei complexități. Cu acest tutorial, sper să vă arăt că înființarea notificărilor push nu ar trebui să fie un coșmar. Urmați și vă promit că veți trimite notificări push în cel mai scurt timp.

Dacă sunteți în căutarea unei soluții rapide, ați putea încerca AZNotification: Notificări pentru iPhone pe Envato Market, care vă permite să creați cu ușurință notificări atractive în cel mai scurt timp. Notificările scad din bara de navigare și pot afișa atât mesaje informative, cât și mesaje de eroare. Sau angajați un dezvoltator de aplicații Envato Studio care să vă ajute.

AZNotification: Notificări pentru iPhone 

1. Condiții preliminare

Veți avea nevoie de două lucruri dacă doriți să urmați alături de mine. Primul lucru de care aveți nevoie este un dispozitiv fizic pentru a primi notificări push, deoarece Simulatorul iOS nu acceptă notificări push. Al doilea lucru de care aveți nevoie este un cont de dezvoltator plătit pentru iOS. Numai conturile plătite pot furniza aplicații pentru a rula pe un dispozitiv fizic.

2. Configurarea proiectului

Scopul acestui tutorial este de a construi o aplicație setată pentru a primi notificări push. Deschideți Xcode și creați un nou proiect bazat pe Vizualizare individuală șablon.

Denumiți proiectul Apăsați, introduceți un identificator al companiei și un prefix de clasă și setați Dispozitive la iPhone.

3. Înregistrarea

Chiar dacă nu voi discuta despre infrastructura backend-ului de tip push-notificări, este important să știți și să înțelegeți ce trebuie să faceți pentru a primi notificări push și de ce face acest lucru.

Deschis TSPAppDelegate.m și actualizați aplicare: didFinishLaunchingWithOptions: așa cum se arată mai jos. Noi sunam registerForRemoteNotificationTypes: pe cerere obiect, trecând în tipurile de notificări de care suntem interesați. Sistemul de operare știe acum că aplicația este interesată să primească notificări push.

- (BOOL): aplicație (UIApplication *) didFinishLaunchingWithOptions: (NSDictionary *) launchOptions // Înregistrare pentru notificări la distanță [application registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; reveniți DA; 

Sistemul de operare contactează serverele Apple și obține a jet de dispozitiv pentru a identifica în mod unic dispozitivul pe care rulează aplicația. Acest jet de dispozitiv este utilizat de infrastructura serverului dvs. pentru a trimite notificări push. Aceasta face trimiterea jetonului dispozitivului împreună cu notificarea reală către serverele Apple. Serverele Apple sunt responsabile cu distribuirea notificărilor push către dispozitivele corespunzătoare.

Rețineți că tokenul dispozitivului diferă pentru fiecare aplicație și poate chiar să se schimbe în timp pentru aceeași aplicație. Prin urmare, Apple recomandă să solicite un jet de dispozitiv de fiecare dată când aplicația este lansată și să trimită jetonul dispozitivului către backend-ul dvs. pentru a vă asigura că jetonul dispozitivului este actualizat.

Dacă utilizați un serviciu ca Parse sau Urban Airship, atunci acesta este ceva ce nu trebuie să vă faceți griji. În acest caz, trebuie doar să trimiteți backend-ul dispozitivului iOS hand to you.

Metodele care vă informează dacă înregistrarea pentru notificările la distanță este reușită sau nu este cerere: didRegisterForRemoteNotificationsWithDeviceToken: și cerere: didFailToRegisterForRemoteNotificationsWithError: respectiv. Pentru moment, implementați aceste metode după cum se arată mai jos.

- (void) aplicație: (UIApplication *) cerere didRegisterForRemoteNotificationsWithDeviceToken: (NSData *) deviceToken NSLog (@ "Înregistrat pentru notificări la distanță cu dispozitivul Token (% @)", deviceToken); 
- (void): aplicație (UIApplication *) didFailToRegisterForRemoteNotificationsWithError: (NSError *) eroare NSLog (@ "Nu sa înregistrat pentru notificări de la distanță"); NSLog (@ "% @,% @", eroare, error.localizedDescription); 

Ambele metode sunt declarate de către UIApplicationDelegate protocol. Acest protocol declară, de asemenea, o altă metodă, cerere: didReceiveRemoteNotification:, care este invocată atunci când aplicația primește o notificare la distanță. Depinde de dvs. să rezolvați orice notificări de împingere primite. cerere: didReceiveRemoteNotification: vă pune la dispoziție sarcina utilă a notificării push ca NSDictionary obiect. Aplicația dvs. trebuie să decidă cum trebuie să răspundă notificării push.

Dacă executați aplicația, atunci cerere: didFailToRegisterForRemoteNotificationsWithError: metoda va fi invocată. Acest lucru nu este surprinzător deoarece nu am finalizat configurarea aplicației noastre pentru notificări push. Ca o atenționare, notificările de la distanță nu sunt acceptate de Simulatorul iOS. Veți avea nevoie de un dispozitiv fizic pentru a finaliza acest tutorial.

4. Certificat SSL

Pentru a finaliza pasul următor, trebuie să vă conectați la contul dvs. de dezvoltator iOS la iOS Dev Center. Alege Identificatorii de la Aplicații iOS secțiuni.

Faceți clic pe butonul plus din partea dreaptă sus și introduceți o imagine Codul de identificare al aplicației. Acest lucru vă ajută să identificați mai târziu ID-ul aplicației.

Puteți să părăsiți Codul prefixului de aplicație așa cum este, dar App ID Suffix trebuie să fie setat la ID de identificare explicită, in loc de Codul aplicației Wildcard. Dacă doriți ca o aplicație să primească notificări la distanță, atunci trebuie să utilizați o aplicație ID de identificare explicită, precum com.tutsplus.push, in loc de com.tutsplus. *.

În secțiunea Servicii de aplicații, permite Notificări. Clic Continua pentru a trimite formularul și faceți clic pe acesta A depune pentru a crea ID-ul aplicației.

Din lista ID-urilor de aplicație, selectați-o pe cea pe care tocmai ați creat-o și faceți clic pe Editați | × butonul de dedesubt. Derulați în jos până când vedeți secțiunea care acoperă notificările push. Ar trebui să vedeți două butoane etichetate Creați certificatul ...  așa cum se arată mai jos.

După cum am menționat mai devreme, backend-ul comunică cu serverele Apple pentru a trimite notificări la distanță aplicației dvs. Backend-ul dvs. trimite notificări de la distanță la cererea dvs. prin serverele Apple. Din acest motiv, Apple trebuie să știe că numai serverele dvs. se pot conecta cu serverele lor. Nu doriți ca altcineva să trimită notificări la distanță în aplicația dvs..

Prin urmare, Apple vă cere să creați un certificat SSL. Mulți dezvoltatori se încruntă la cuvintele "certificate" și "provizioane", dar într-adevăr nu este așa de dificil. Urmați și veți fi gata în mai puțin de două minute.

Deschis Acces la chei pe mașina dvs. de dezvoltare și selectați Certificat asistent> Solicitați un certificat de la o autoritate de certificare ... de la Acces la chei meniul. Verificați dublu că nu este selectată nici o cheie Acces la chei când selectați această opțiune.

Introduceți o adresă de e-mail și a Denumirea comună pentru a identifica mai târziu certificatul. Paraseste CA e-mail câmp gol și selectați Salvată pe disc. Clic Continua și salvați certificatul de semnare a certificatului pe hard disk.

Ați creat câteva lucruri finalizând acest pas. Ați creat o solicitare de semnare a certificatului, precum și o cheie publică și privată. Cheile trebuie să fie vizibile în Acces la chei așa cum se arată mai jos.

Întoarceți-vă la iOS Dev Center și faceți clic pe Creați certificatul ... butonul pe care l-am văzut mai devreme. Apple vă spune ce pași trebuie să faceți pentru a crea cererea de semnare a certificatului, dar deja l-am completat. Clic Continua, încărcați cererea de semnare a certificatului dând clic pe Alege fișierul… buton, și lovit Genera pentru a genera certificatul SSL.

După cum instruiește Apple, descărcați certificatul și faceți dublu clic pe el pentru ao instala Acces la chei. Verificați dublu că certificatul este adăugat la Acces la chei și legate de cheia privată corectă.

Următorul pas, furnizarea de aplicații, este ceva care atrage mulți dezvoltatori. Lasă-mă să te trec prin asta.

5. Aplicarea aplicațiilor

Înainte de a putea testa setarea notificărilor push, trebuie să creați un profil de provizionare pentru aplicația noastră. În iOS Dev Center, selectați Dezvoltare în Profiluri de asigurare secțiune. Faceți clic pe butonul plus din partea dreaptă sus și selectați Dezvoltarea aplicației iOS sub Dezvoltare secțiune.

Clic Continua și selectați ID-ul de aplicație din listă. Selectați certificatele pe care doriți să le includeți în profilul de furnizare și dați clic pe Continua. Deoarece creăm un profil de provizionare pentru dezvoltare, trebuie să specificăm și dispozitivele care trebuie incluse în profilul de furnizare. Asigurați-vă că dispozitivul dvs. de testare este inclus. Dați profilului de furnizare un nume sensibil și dați clic pe Genera.

Descărcați profilul de provizionare și trageți-l în Xcode pentru al adăuga. Actualizați setările de construire a țintă în Xcode pentru a utiliza noul profil de provizionare. Construiți și executați aplicația pentru a vă asigura că totul funcționează conform așteptărilor.

Dacă întâmpinați probleme, verificați dublu că identificatorul pachetului aplicației dvs. se potrivește cu cel al ID-ului aplicației. Rețineți că un identificator de pachete este sensibil la minuscule.

Dacă ați urmat pașii descriși în acest tutorial, aplicația dvs. vă va solicita următorul mesaj.

Dacă atingeți O.K, aplicația dvs. va cere sistemul de operare pentru un jet de dispozitiv. Dacă acest lucru este de succes, cerere: didRegisterForRemoteNotificationsWithDeviceToken: metodă a UIApplicationDelegate se invocă protocolul, înmânând tokenul dispozitivului. Pentru că am adăugat o instrucțiune de jurnal la această metodă, jetonul dispozitivului ar trebui să fie de asemenea înregistrat în consola în Xcode.

Apăsați pe [2182: 60b] Înregistrează pentru notificări la distanță cu dispozitivul Token (<131cec1a 64cf8f4c 80009196 6157311d c774df92 056c74c2 e5538e52 db4848f1>)

6. Trimiterea notificărilor push

Pentru a testa dacă notificările push pe care le trimiteți sosesc, trebuie să aveți un backend în loc în care aplicația dvs. poate să trimită tokenul dispozitivului. Acest backend poate apoi să se conecteze cu serverele Apple pentru a trimite notificări push.

Nu voi acoperi acest aspect al notificărilor push în acest tutorial, dar aceasta este partea ușoară a notificărilor push, mai ales dacă utilizați un serviciu ca Parse sau Urban Airship.

Puteți folosi, de asemenea, Houston, o bijuterie Ruby dezvoltată de Mattt Thompson, care face trimiterea notificărilor push foarte ușoare.

Concluzie

Sper că acest tutorial ți-a arătat că notificările push nu sunt atât de greu de creat, așa cum cred majoritatea dezvoltatorilor. Este adevărat că este nevoie de un pic de fiddling cu chei și certificate, dar odată ce ați înțeles părțile în mișcare, atunci nu este atât de greu de înțeles și de înființat.

Adevărul este că partea dificilă creează chei și certificate. Manipularea notificărilor push în aplicația dvs. iOS este foarte simplă și simplă.

Cod