livrare mesaj multimedia direct la iOS-app
fundal
Mesaje bilaterale
Apple și Google au construit infrastructura bazată pe Internet, care permite să livreze mesaje de la aplicațiile de server respectiv iOS- și Android-dispozitive. -Notificarea Push proiectat inițial pentru a interacționa cu aplicațiile instalate pe dispozitive mobile. Acestea vă permit să trimiteți texte, fișiere multimedia și date speciale, cum ar fi tonuri de apel și insigne pentru a afișa pe pictograma aplicației.
Acest articol explică modul de push-notificare tehnologie funcționează pe platforma iOS și cum să-l includă în aplicațiile lor. Pentru a obține efectul maxim al articolului, trebuie să aveți o anumită experiență de programare pe iOS și platforma Java.
Fundamentele iOS push-tehnologie
Pentru cereri de autentificare de la push-iOS-app Apple a utilizează certificate digitale cu cheia publică, astfel încât trebuie să creați mai întâi chei de autentificare și să le înregistreze la Apple. Acest lucru, dar un proces destul de lung, simplu va fi discutat în secțiunea următoare.
Apoi, aveți nevoie pentru a identifica fiecare dispozitiv care instalează o aplicație și va primi push-notificări pentru această aplicație. Secvența este următoarea:
O alternativă la propriul server: Airship Urban
Airship Urban - un serviciu care vă permite să trimiteți mesaje push-fără a fi nevoie pentru a crea propriul server (a se vedea resurse.). Tu încărcați cheile secrete în Airship Urban și utilizarea lui Web-consolă pentru a trimite mesaje push-utilizatorilor lor. Urban Airship oferă un SDK pentru iOS, care facilitează înregistrarea cererii pentru fiecare dispozitiv conectat la server, astfel încât aceste dispozitive sunt afișate pe consola de administrare mesaje. Urban Airship Serviciul simplifică munca, dar poate fi costisitoare - și încă push-notificare Elementele de bază ale tehnologiei trebuie să știți.
APN-uri, de asemenea, permite serverului de aplicații pentru a verifica periodic lista identificatorilor de aplicație. Acest lucru creează posibilitatea de a exclude identificatorii utilizatorilor care au dezinstalat aplicația sau modificat starea push-in.
Poate părea că o mulțime de muncă, și modul în care este. De aceea, există servicii comerciale de tip Airship Urban de intermediari (a se vedea. Caseta).
Vă vom arăta cum să se înregistreze cererea dumneavoastră, și apoi se îngropa în detalii cu privire la dezvoltarea de iOS-app push-notificări și componente server folosind un open-source Java-bibliotecă.
cerere de înregistrare
Pentru a înregistra cererea dumneavoastră pentru transmiterea push-notificări, trebuie să creați mai întâi o pereche de chei secrete / publice pentru autentificare API-apeluri adresate serverelor APN. Pe un Mac, acest lucru se face cu "Keychain Access" (Keychain Access). Selectați Keychain Access> Certificat Asistent> Solicitare un certificat de la o autoritate de certificare. pentru a crea o cerere de înregistrare certificat de solicitare de fișier. a generat fișierul cerere conține o pereche de chei publice și a cheii private corespunzătoare stocate în „cheile“ Grupați. Nu uitați să selectați Salvare pentru a caseta de dialog pe disc. așa cum se arată în figura 1.
Figura 1. Crearea unei perechi de chei și cererea de înregistrare a programului „Keychain Access“ pe Mac
![Transfer notificări ios-dispozitiv (înregistrare în aplicația dvs.) Notificări de transfer ios-dispozitiv](https://images-on-off.com/images/30/peredachauvedomleniyviosustroystva-76be0504.jpg)
În continuare, accesați portalul utilizator managementul profilului și accesul la aplicații de la Apple (a se vedea. Resurse) și descărcați la cererea dvs., care va fi legat de profilul corespunzător. Cele mai multe aplicații au un profil de depanare pentru dezvoltarea și profilul operațional pentru App Store, așa că va trebui probabil să genereze și să descarce un fișier de două cereri. Prin trimiterea unei cereri la portal, veți primi un certificat digital pentru a descărca. Certificatul conține o cheie publică, care este acum serverul APN va recunoaște ca fiind asociate cu această aplicație. Figura 2 prezintă un exemplu.
Figura 2: Apple Certificat digital
![Transmiterea notificărilor ios în dispozitiv (prezentat în Listing Listing) Notificări de transfer ios-dispozitiv](https://images-on-off.com/images/30/peredachauvedomleniyviosustroystva-3e06bea6.jpg)
Descărcați certificatul digital, dublu-clic pe fișierul descărcat. „Keychain Access“ va importa în mod automat certificatul digital și să o asociați cu cheia secretă generată atunci când a crea o interogare. Figura 3 prezintă o pereche de chei publice și private într-un „chei Bundle“.
Figura 3. O pereche de chei publice și private în „keychain“
![Transmiterea notificărilor ios dispozitivului de (chei secrete deschise Bundle) Notificări de transfer ios-dispozitiv](https://images-on-off.com/images/30/peredachauvedomleniyviosustroystva-b4c52ebd.jpg)
perechea de chei pot fi exportate într-un fișier utilizând formatul Schimb de informații personale (P12). Atunci când creați un fișier P12 „Keychain Access“ cere să setați o parolă pentru a proteja cheia privată. Opțional, puteți utiliza o parolă gol.
Din acest moment, toate API-cereri pentru serverele push-APN va fi criptat cu cheia privată a fișierului P12, și să fie echipate cu o cheie publică cu o semnătură digitală pentru a se asigura că acesta este într-adevăr API-apel de la tine. Voi demonstra modul de utilizare tastele, mai jos, atunci când am descrie interacțiunea cu serverele APN. (Atunci când se utilizează Airship Urban vi se va cere să transfere P12 fișier, împreună cu parola la server, astfel încât să poată trimite push-mesaje în numele tău.)
Acum, cu push-certificate, trebuie să reporniți și să reinstalați controlul lor profiluri de acces - deoarece acestea s-au schimbat, iar acum suporta push-notificări pentru aplicația.
marcator Cerere și de dispozitive de salvare
IOS-cerere trebuie să ceară permisiunea de la utilizator pentru a primi notificări de pe dispozitivul pe care este instalat. De obicei, acest lucru se face într-o cerere autorizată (cerere delegat) printr-un simplu API-apel, așa cum se arată în Listarea 1.
Listarea 1. Solicitare permisiunea utilizatorului
În cazul în care utilizatorul dă permisiunea, aplicația se transformă automat la serverul APN pentru marcatorul de dispozitiv. Marker permite APN pentru a identifica această aplicație specială instalată pe acest dispozitiv special, ca destinație a mesajului. Acesta este un proces automat, care are loc în fundal. Ea nu are nevoie să scrie orice cod.
După răspuns server APNs cauzat metoda didRegisterForRemoteNotificationsWithDeviceToken într-un dispozitiv de aplicare autorizat cu un marker, transmis ca parametru apel. Salvați token-ul dispozitivului și încărcați-l pe server push-notificare, așa cum se arată în Listarea 2.
Listarea 2. Obținerea de ID-ul și încărcați la server
Serverul trebuie să păstreze informația de identificare simbolică și sunt asociate în baza de date. În cele mai multe aplicații, acestea sunt stocate în datele de profil de utilizator.
Trimiterea de mesaje push-
Pentru a trimite un mesaj-apăsare, serverul efectuează următoarele acțiuni.
În complex API servicii web server de APN-uri. Din fericire pentru Java dezvoltatori există o bibliotecă cu JavaPNS open source, ceea ce este mult mai ușor să lucreze cu el. A se vedea Resurse pentru link-uri către descărcări și JavaPNS documentare.
Codul din listingul 3 arată cum de a trimite un mesaj SMS ca la dispozitiv utilizând biblioteca JavaPNS.
Listarea 3. Trimiterea de mesaje push-
Valoarea de returnare a apelului metodei - o listă de obiecte PushedNotification. care pot fi utilizate pentru a determina starea push-livrare, așa cum se arată în Listarea 4.
Listarea 4. Verificarea stării push-livrare
În cazul în care obiectul este o notificare vă spune că un anumit dispozitiv de marcare nu mai este activ - de exemplu, în cazul în care utilizatorul a șters aplicația din dispozitiv sau dezactivați notificările din setările aplicației - trebuie să eliminați marcatorul din baza de date, nu pentru a trimite mai multe mesaje de la aparat.
Un alt mod de a actualiza lista de token-uri de dispozitiv activ - verifica periodic serverul de aplicații cu serverele APN. Listarea 5 arată cum să interogheze APNS serviciu feedback-ul folosind JavaPNS, pentru a obține o listă de token-uri invalid dispozitiv de APNS serverul de depanare.
Listarea 5. Verificați pentru a actualiza lista de token-uri de dispozitiv valide
Este important să nu cheltuiască resurse pe trimiterea de mesaje către dispozitivul din care este eliminat aplicația sau care au refuzat să primească notificări.
considerații suplimentare
Push-notificare nu poate fi verificată pe iOS emulatoare; pentru a testa aplicația pe care trebuie să-l instalați pe un dispozitiv adevărat. Deoarece certificatul digital utilizat pentru autentificarea mesajelor asociate cu acces la profilul de control la datele aplicației în procesul de dezvoltare sau de răspândire trebuie testat cu certificatul de depanare. După verificarea cererii și plasându-l în App Store trebuie să meargă pe certificatul de lucru.
În plus, este important să se înțeleagă că setarea și push-trimite mesaje către un mare utilizator de bază - o sarcină consumatoare de timp. De exemplu, ați putea dori pentru a căuta în baza de date de un milion de utilizatori la fiecare 5 secunde pentru a identifica utilizatorii 10 care au nevoie în prezent pentru a trimite un mesaj. Pentru a menține frecvente de notificare e-mail număr mare de utilizatori, ar trebui să fie atent proiectate și infrastructură pe partea de server planificat. In schimb, push-trimite mesaje de milioane de utilizatori dintr-o dată creează trafic intens, care poate fi mai bine controlate prin piscina fir, dar nu a bloca un singur fir. JavaPNS bibliotecă oferă un API simplu, care utilizează bazine de fire pentru a trimite mesaje către un număr mare de dispozitive simultan.
concluzie
Push-Tehnologia permite serverului de aplicații pentru a ocoli operatorii de transport și de a trimite mesaje direct la iOS dispozitive prin intermediul aplicației de Internet. Deși punerea în aplicare push-notificare nu este trivial - SSL certificate sunt necesare pe partea de client pentru autentificarea pe serverele Apple - prin intermediari, cum ar fi Airship Urban, sau o bibliotecă JavaPNS poate facilita notificare prin e-mail. SMS și MMS au locul lor și sunt mai fiabile decât un push-tehnologie, dar punerea în aplicare a mesajelor push-service, iOS aplicații pot fi făcute mai bogată și mai variată.