Sette opp Push Notifications på iOS

Setting Up Push Notifications på iOS
50
Del
11
Del
Dette Cyber ​​mandag Envato Tuts + Kursene vil bli redusert til bare $ 3. Ikke gå glipp av.

Innledning

Apple opprinnelig introdusert push-varslinger for å muliggjøre programmer for å reagere på hendelser hvis programmet ikke kjører i forgrunnen. Imidlertid har operativsystemet og iOS-enheter endret seg betydelig i løpet av de siste årene og applikasjoner trenger ikke å stole utelukkende på push-varslinger for å utføre oppgaver i bakgrunnen.

Dette betyr ikke at push-varsling er ikke lenger er nyttig skjønt. Push-varslinger er flott å varsle et program om viktige hendelser og for å holde programmets brukerne engasjert. Du må heller ikke glemme at en søknad fortsatt ikke er lov til å kjøre i bakgrunnen uten restriksjoner. Med andre ord, er det opprinnelige formålet med push-varslinger fortsatt gyldig.

Selv de mest erfarne iOS utviklere klø seg i hodet fra tid til annen når de har å forholde seg til søknaden klargjøring. Dessverre, push-varslinger legge til denne kompleksiteten. Med denne opplæringen, jeg håper å vise deg at du setter opp push-varslinger bør ikke være et mareritt. Følg med og jeg lover at du skal sende push-varslinger på et blunk.

1. Forutsetninger

Du trenger to ting hvis du ønsker å følge med meg. Det første du trenger er en fysisk enhet for å motta push-varslinger, fordi iOS Simulator støtter ikke push-varslinger. Den andre tingen du trenger er en betalt iOS developer konto. Bare betalte kontoer kan klargjøre programmer for å kjøre på en fysisk enhet.

2. Prosjektet Setup

Målet med denne opplæringen er å bygge et program som er satt opp til å motta push-varslinger. Åpne Xcode og opprette et nytt prosjekt basert på Enkel visning Application
mal.

Navn prosjektet Push
, skriv inn et selskap identifikator og klasse prefiks, og sette Enheter
til iPhone.

3. Registrering

Selv om jeg ikke vil diskutere kjedelige backend infrastruktur for push-varslinger, er det viktig at du vet og forstår hva man har behov for å gjøre for å motta push-varslinger og hvorfor den gjør dette. Anmeldelser

Åpne TSPAppDelegate.m Hotell og oppdatere program: didFinishLaunchingWithOptions: som vist nedenfor. Vi kaller registerForRemoteNotificationTypes: på programmet objektet, passerer i varslingstyper som vi er interessert i operativsystemet vet nå at søknaden er interessert i å motta push-varslinger Anmeldelser - (BOOL) program:.. (UIApplication *) søknad didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {//registrer deg fjernvarslings [applikasjons registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; returnere JA;}

Operativsystemet kontakter Apples servere, og får en enhet token
å identifisere enheten programmet kjører på. Token denne enheten brukes av serverinfrastrukturen for å sende push-varslinger. Det gjør den ved å sende token enheten sammen med selve push varsling til Apples servere. Apples servere er ansvarlig for distribusjon av push-varsling til de aktuelle enhetene.

Merk at token enheten er forskjellig for hvert program, og det kan også endre seg over tid for samme program. Apple anbefaler derfor å be om en symbolsk enhet hver gang programmet startes og sende token enheten til backend å sørge token enheten er oppdatert.

Hvis du bruker en tjeneste som Parse eller Urban Airship, så dette er noe du ikke trenger å bekymre seg for. I så fall trenger du bare å sende backend enheten token iOS hender du

Metodene som forteller din søknad om registrering for eksterne meldinger er vellykket eller ikke er program. DidRegisterForRemoteNotificationsWithDeviceToken: og søknad: didFailToRegisterForRemoteNotificationsWithError: henholdsvis . For nå, implementere disse metodene som vist nedenfor Anmeldelser - (void) program:. (UIApplication *) søknad didRegisterForRemoteNotificationsWithDeviceToken: (NSData *) deviceToken {NSLog (@ "Did Register for Remote Påminnelser med Enhets Token (% @)", deviceToken);} - (void) program: (UIApplication *) søknad didFailToRegisterForRemoteNotificationsWithError: (NSError *) feil {NSLog (@ "Visste ikke er påmeldt for Remote Påminnelser"); NSLog (@ "% @,% @", feil, error.localizedDescription); }

Begge metodene er erklært av UIApplicationDelegate protokollen. Denne protokollen erklærer også en annen metode, applikasjon: didReceiveRemoteNotification :, som er påberopt når programmet mottar en ekstern varsling. Det er opp til deg å håndtere eventuelle innkommende push-varslinger. Søknaden: didReceiveRemoteNotification: metode hender du nyttelast av push varsling som en NSDictionary objekt. Søknaden din må bestemme hvordan den skal reagere på push varsling

Hvis du kjører programmet, da programmet. DidFailToRegisterForRemoteNotificationsWithError: metode vil bli påberopt. Dette er ikke overraskende siden vi ikke er ferdig med å sette opp vår søknad for push-varslinger. Som en påminnelse, er eksterne varslinger ikke støttes av iOS Simulator. Du trenger en fysisk enhet for å fullføre denne opplæringen.

4. SSL Certificate

For å fullføre neste trinn, må du logge inn på din iOS developer konto på Apples iOS Dev Center. Velg identifikatorer
fra iOS Apps
seksjoner.

Klikk på pluss-knappen øverst til høyre og skriv inn en App ID Beskrivelse
. Dette hjelper deg med å identifisere App ID senere.

Du kan forlate App ID Prefix
som er, men App ID-suffiks
må settes til eksplisitt App ID
, i stedet for Wildcard App ID
. Hvis du ønsker en søknad om å få eksterne varslinger, så du må bruke en Explicit App ID
, slik som com.tutsplus.push
, i stedet for com.tutsplus. *
.

I avsnittet App Services
, aktiverer Push Notifications
. Klikk Fortsett
å sende inn skjemaet og klikk Send
å skape App ID.

Fra listen over App IDer, velger du den du nettopp opprettet, og Klikk Rediger
knappen under. Bla ned til du ser den delen som dekker push-varslinger. Du skal se to knapper merket Opprett sertifikat ...
som vist nedenfor.

Som jeg nevnte tidligere, kommuniserer backend med Apples servere til å sende eksterne varslinger til søknaden din. Din backend sender eksterne varslinger til din søknad via Apples servere. Av denne grunn, Apple trenger å vite at bare dine servere kan få kontakt med sine servere. Du ønsker ikke noen andre å sende eksterne varslinger til søknaden din.

Apple krever derfor du opprette en SSL-sertifikat. Mange utviklere krype på ordene "sertifikater" og "klargjøring", men det er egentlig ikke så vanskelig. Følg med og du vil være klar i løpet av mindre enn to minutter

Åpne Nøkkelringtilgang
på utviklingsmaskinen og velg Sertifikatassistent >.; Be om et sertifikat fra en sertifiseringsinstans ...
fra Nøkkelringtilgang
menyen. Dobbeltsjekke at ingen tast er valgt i Nøkkelringtilgang
når du velger dette alternativet.

Skriv inn en e-postadresse og et Common Name
å identifisere sertifikatet senere. Forlate CA Send
feltet stå tomt, og velg lagret på disken
. Klikk Fortsett Hotell og lagre
sertifikatsignering forespørsel til harddisken.

Du har opprettet et par ting ved å fullføre dette trinnet. Du har opprettet en sertifikatsignering forespørsel samt en offentlig og privat nøkkel. Nøklene skal være synlig i Nøkkelringtilgang
som vist nedenfor.

Leder tilbake til iOS Dev Center og klikk på Opprett sertifikat ...
knapp som vi så tidligere . Apple forteller deg hvilke skritt du må ta for å skape den sertifikatsignering forespørsel, men vi har allerede fullført dem. Klikk Fortsett
, laste opp sertifikatsignering forespørsel ved å klikke på Velg fil ...
knappen, og trykk på Generer
å generere SSL-sertifikat.

Som Apple instruerer, laste ned sertifikatet og dobbeltklikk på den for å installere den i Nøkkelringtilgang
. Dobbeltsjekk at sertifikatet er lagt til Nøkkelringtilgang Hotell og knyttet til riktig private nøkkelen.

Det neste trinnet, søknad klargjøring, er noe som turer opp mange utviklere. La meg gå gjennom den.

5. Søknad Provisioning

Før vi kan teste vår push-varslinger oppsett, må vi opprette et klargjøringsprofil for søknaden vår. Velg Utvikling
i Provisioning Profiles
delen i iOS Dev Center. Klikk på pluss-knappen øverst til høyre og velg iOS App Development
under Utvikling
delen.

Klikk på Fortsett Hotell og velg din app-ID fra listen. Velg sertifikatene du vil inkludere i klargjøringsprofilen og klikk Fortsett
. Fordi vi skaper et klargjøringsprofil for utvikling, trenger vi også å spesifisere hvilke enheter må inngå i klargjøringsprofilen. Sørg for at testenheten er inkludert. Gi klargjøringsprofilen et fornuftig navn og klikk Generer
.

Last klargjøringsprofilen og dra den i Xcode å legge det til. Oppdater målets byggeinnstillingene i Xcode å bruke den nye provisioning profilen. Bygge og drive din søknad for å være sikker på at alt fungerer som forventet.

Hvis du kjører inn i problemer, og dobbeltsjekke at bunten identifikator av søknaden din passer som av App-ID. Merk at en bunt identifikator er store og små bokstaver.

Hvis du har fulgt trinnene i denne opplæringen, bør søknaden be deg med følgende melding.

Hvis du trykker på OK
, vil søknaden din be operativsystemet for en symbolsk enhet. Hvis dette lykkes, søknaden: didRegisterForRemoteNotificationsWithDeviceToken: er metoden i UIApplicationDelegate protokollen påberopes, overlate du token enheten. Fordi vi har lagt en logg uttalelse til denne metoden, bør token enheten også være logget på konsollen i Xcode
Push [2182: 60b] Visste Register for Remote Påminnelser med Enhets Token (< 131cec1a 64cf8f4c 80009196 6157311d c774df92 056c74c2 e5538e52. db4848f1 >)
6. Sende push-varslinger

For å teste om noen push-varslinger du sender ankommer, må du ha en backend på plass som programmet kan sende token enheten til. Som backend kan deretter koble med Apples servere for å sende push-varslinger.

Jeg vil ikke dekke dette aspektet av push-varsling i denne opplæringen, men dette er den enkle delen av push-varslinger, spesielt hvis du bruker en tjeneste som Parse eller Urban Airship.

Du kan også bruke Houston, en Ruby perle utviklet av Mattt Thompson, som gjør sending push-varslinger veldig enkelt.

Konklusjon

Jeg håper denne opplæringen har vist deg at push-varslinger er ikke så vanskelig å sette opp som de fleste utviklerne tror. Det er sant at det tar en bit av å fikle med nøkler og sertifikater, men når du forstår de bevegelige delene, så er det ikke så vanskelig å forstå og sette opp.

Sannheten er at den harde delen er å skape nøkler og sertifikater. Håndtering push-varslinger i iOS-applikasjonen er meget enkel og grei.