Sette opp push notifikasjoner på iOS

Introduksjon

Apple introduserte opprinnelig push notifications for å aktivere applikasjoner til å svare på hendelser hvis programmet ikke kjører i forgrunnen. Operativsystemet og iOS-enhetene har imidlertid forandret seg betydelig de siste årene, og applikasjoner trenger ikke å stole utelukkende på push-varsler for å utføre oppgaver i bakgrunnen.

Dette betyr ikke at push meldinger ikke lenger er nyttige. Push notifications er gode å varsle om et søknad om viktige hendelser og for å holde søknaden brukerne engasjert. Ikke glem at et program fortsatt ikke har lov til å løpe i bakgrunnen uten begrensninger. Med andre ord er det opprinnelige formålet med push notifications fortsatt gyldig.

Selv de mest erfarne iOS-utviklerne riper på hodene sine fra tid til annen når de må håndtere søknadsprosessering. Dessverre, push meldinger legger til denne kompleksiteten. Med denne opplæringen håper jeg å vise deg at det ikke må være et mareritt å sette opp meldinger. Følg med, og jeg lover at du skal sende pushvarsler på kort tid.

Hvis du leter etter en rask løsning, kan du prøve AZNotification: Notifications for iPhone på Envato Market, som lar deg enkelt lage attraktive meldinger på kort tid. Meldingene faller fra navigasjonslinjen og kan vise informasjons- og feilmeldinger. Eller leie en Envato Studio apputvikler for å hjelpe deg.

AZNotification: Notifikasjoner for iPhone 

1. Forutsetninger

Du trenger to ting hvis du vil følge med meg. Det første du trenger er en fysisk enhet for å motta push-varsler, fordi iOS-simulatoren ikke støtter push notifications. Den andre tingen du trenger er en betalt iOS-utviklerkonto. Bare betalte kontoer kan bestemme at applikasjoner skal kjøre på en fysisk enhet.

2. Prosjektoppsett

Målet med denne opplæringen er å bygge et program som er satt opp for å motta push-varsler. Åpne Xcode og opprett et nytt prosjekt basert på Enkeltvisningsprogram mal.

Gi navnet navnet på prosjektet Trykk, skriv inn en bedriftsidentifikator og klasse prefiks, og sett inn enheter til iPhone.

3. Registrering

Selv om jeg ikke vil diskutere infrastruktur for push-gritty bakgrunner med push notifications, er det viktig at du vet og forstår hva søknaden din må gjøre for å motta push notifications og hvorfor det gjør dette.

Åpen TSPAppDelegate.m og oppdatere applikasjons: didFinishLaunchingWithOptions: som vist under. Vi ringer registerForRemoteNotificationTypes:applikasjon objekt, passerer i varslingstyper som vi er interessert i. Operativsystemet vet nå at programmet er interessert i å motta push notifications.

- (UIpplikasjon *) søknad didFinishLaunchingWithOptions: (NSDictionary *) launchOptions // Registrer for eksterne varsler returnere JA; 

Operativsystemet kontakter Apples servere og får en enhetstoken for å unikt identifisere enheten som programmet kjører på. Denne enhetstoken brukes av din serverinfrastruktur til å sende push-varsler. Det gjør dette ved å sende enheten token sammen med den faktiske push varsel til Apples servere. Apples servere har ansvaret for å distribuere push notifikasjonene til de aktuelle enhetene.

Merk at enhetstokenet er forskjellig for hvert program, og det kan til og med endres over tid for samme program. Apple anbefaler derfor å be om enhetstoken hver gang applikasjonen blir lansert, og send enhetstoken til din backend for å sikre at enhetstokenet er oppdatert.

Hvis du bruker en tjeneste som Parse eller Urban Airship, så er dette noe du ikke trenger å bekymre deg for. I så fall trenger du bare å sende backend-enheten til iOS-hånden din, iOS.

Metodene som forteller din søknad om registrering av fjernvarsler er vellykket eller ikke applikasjon: didRegisterForRemoteNotificationsWithDeviceToken: og applikasjon: didFailToRegisterForRemoteNotificationsWithError: henholdsvis. For nå, implementer disse metodene som vist nedenfor.

- (ugyldig) søknad: (UIApplication *) søknad didRegisterForRemoteNotificationsWithDeviceToken: (NSData *) deviceToken NSLog (@ "Registrerte for fjernvarsler med Device Token (% @)", deviceToken); 
- (ugyldig) -applikasjon: (UIApplication *) -programmet didFailToRegisterForRemoteNotificationsWithError: (NSError *) feil NSLog (@ "Mislyktes å registrere for eksterne varsler"); NSLog (@ "% @,% @", feil, error.localizedDescription); 

Begge metodene er deklarert av UIApplicationDelegate protokoll. Denne protokollen erklærer også en annen metode, applikasjon: didReceiveRemoteNotification:, som påberopes når programmet mottar et eksternt varsel. Det er opp til deg å håndtere eventuelle innkommende pushvarsler. De applikasjon: didReceiveRemoteNotification: metode håndterer du nyttelastet til push notifikasjonen som en NSDictionary gjenstand. Din søknad må bestemme hvordan den skal svare på push notifikasjonen.

Hvis du kjører programmet, så er det applikasjon: didFailToRegisterForRemoteNotificationsWithError: Metoden vil bli påkalt. Dette er ikke overraskende siden vi ikke har ferdig med å sette opp søknaden vår for push notifications. Som en påminnelse støttes ikke ekstern varsling av iOS-simulatoren. Du trenger en fysisk enhet for å fullføre denne opplæringen.

4. SSL-sertifikat

For å fullføre neste trinn må du logge på iOS-utviklerkontoen din på Apples IOS Dev Center. Velge identifikatorer fra iOS-apper 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 det er, men det App ID Suffix må settes til Eksplisitt App ID, i stedet for Wildcard App ID. Hvis du vil at et program skal motta eksterne varsler, må du bruke en Eksplisitt App ID, som for eksempel com.tutsplus.push, i stedet for com.tutsplus. *.

I seksjonen App-tjenester, Aktiver Push Notifications. Klikk Fortsette å sende inn skjemaet og klikk Sende inn for å opprette app-IDen.

Fra listen over App ID-er velger du den du nettopp opprettet og klikker på Redigere knappen under den. Rull ned til du ser delen som dekker pushvarsler. Du bør se to knapper merket Opprett sertifikat ...  som vist under.

Som nevnt tidligere kommuniserer backenderen din med Apples servere for å sende eksterne varsler til søknaden din. Din backend sender fjernvarsler til din søknad via Apples servere. Av denne grunn må Apple vite at bare dine servere kan koble til sine servere. Du vil ikke at noen andre skal sende ekstern varsling til søknaden din.

Apple krever derfor at du oppretter et SSL-sertifikat. Mange utviklere cringe på ordene "sertifikater" og "provisjonering", men det er egentlig ikke så vanskelig. Følg med og du vil være klar på mindre enn to minutter.

Åpen Nøkkelring tilgang på utviklingsmaskinen din og velg Sertifikatassistent> Be om et sertifikat fra en sertifiseringsinstans ... fra Nøkkelring tilgang Meny. Dobbeltklikk at ingen tast er valgt i Nøkkelring tilgang når du velger dette alternativet.

Skriv inn en e-postadresse og a Vanlig navn å identifisere sertifikatet senere. Forlate CA Email feltet tomt og velg Lagret til disk. Klikk Fortsette og lagre sertifikat signering forespørsel til harddisken din.

Du har opprettet et par ting ved å fullføre dette trinnet. Du har opprettet en underskriftsforespørsel for sertifikat, samt en offentlig og privat nøkkel. Nøklene skal være synlige i Nøkkelring tilgang som vist under.

Gå tilbake til iOS Dev Center og klikk på Opprett sertifikat ... knappen som vi så tidligere. Apple forteller deg hvilke skritt du må ta for å opprette sertifikat-signeringsforespørselen, men vi har allerede fullført disse. Klikk Fortsette, last opp sertifikat-signeringsforespørselen ved å klikke på Velg Fil… knappen, og trykk generere å generere SSL-sertifikatet.

Som Apple instruerer, last ned sertifikatet og dobbeltklikk det for å installere det Nøkkelring tilgang. Dobbeltklikk at sertifikatet er lagt til Nøkkelring tilgang og koblet til riktig privat nøkkel.

Det neste trinnet, programmuligheter, er noe som går opp til mange utviklere. La meg gå deg gjennom det.

5. Programmering

Før vi kan teste oppsettet for push notifications, må vi opprette en provisjonsprofil for applikasjonen vår. I iOS Dev Center velger du UtviklingProvisioning Profiler seksjon. Klikk på pluss-knappen øverst til høyre og velg iOS App Development under Utvikling seksjon.

Klikk Fortsette og velg App-ID-en din fra listen. Velg sertifikatene du vil inkludere i provisjonsprofilen, og klikk Fortsette. Fordi vi oppretter en provisjonsprofil for utvikling, må vi også spesifisere hvilke enheter som skal inkluderes i provisjonsprofilen. Pass på at testenheten er inkludert. Gi provisjonsprofilen et fornuftig navn og klikk generere.

Last ned provisjonsprofilen og dra den i Xcode for å legge den til. Oppdater målets bygginnstillinger i Xcode for å bruke den nye provisjonsprofilen. Bygg og kjør din søknad for å sikre at alt fungerer som forventet.

Hvis du får problemer, kontroller du at buntidentifikatoren for applikasjonen din samsvarer med App-ID-en. Merk at en pakkeidentifikator er saksfølsom.

Hvis du har fulgt trinnene som er skissert i denne opplæringen, bør søknaden din spørre deg med følgende melding.

Hvis du trykker på OK, søknaden din vil spørre operativsystemet for enhetstoken. Hvis dette lykkes, vil applikasjon: didRegisterForRemoteNotificationsWithDeviceToken: metode av UIApplicationDelegate protokollen er påkalt, og gir deg enhetstoken. Fordi vi la til en loggoppføring til denne metoden, bør enhetstoken også logges til konsollen i Xcode.

Push [2182: 60b] Har registrert for ekstern varsling med Device Token (<131cec1a 64cf8f4c 80009196 6157311d c774df92 056c74c2 e5538e52 db4848f1>)

6. Sending Push Notifications

For å teste om noen push meldinger du sender kommer, må du ha en backend på plass som din søknad kan sende enheten token til. Denne backenden kan da koble til Apples servere for å sende push notifications.

Jeg vil ikke dekke dette aspektet av push-varsler 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 notifications veldig enkelt.

Konklusjon

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

Sannheten er at den harde delen er å skape nøkler og sertifikater. Håndtering av push-varsler i iOS-programmet ditt er veldig enkelt og greit.