implementering af push-underretninger i din app
for et par år siden begyndte tjenester at dukke op, der bragte enkelheden i typiske pub/sub-systemer til push-underretninger. I stedet for at skulle manuelt spore din brugers telefon-id ‘ er individuelt, giver disse tjenester Dig mulighed for blot at abonnere dine brugere på de ønskede kanaler for at modtage push-meddelelser fra.
for eksempel, hvis en bruger ønsker at blive underrettet, når et kursus om Javascript offentliggøres på Thinkster, kunne vi abonnere dem på en kanal kaldet “javascript”, som tusinder af andre brugere også kunne abonnere på. Men for at udløse en push-meddelelse til alle disse brugere ville kun tage en linje kode – blot offentliggøre en push-meddelelse til “javascript” – kanalen, og alle vores brugere vil modtage den. Sammenlign dette med at forespørge din database, der indeholder din brugers telefon-id ‘er, segmentere, hvilke brugere der ønsker at blive underrettet om Javascript, og derefter sende meddelelser individuelt for hver af dem til APN’ er/GCM. Yuck!
der er et par tjenester derude, der leverer denne pub/sub-funktionalitet, men på dette tidspunkt anbefaler vi stærkt at bruge Parse til styring af dine push-meddelelser. Her er hvorfor: – det er bredt vedtaget og kamphærdet fra brug på tværs af 100.000+ apps – Det er gratis at sende et ubegrænset antal push-meddelelser, så længe du har < 1 million brugere (!!!) registreret på din app (efter at du skal betale en sølle fem cent per tusind ekstra brugere)- deres plugins og API er sindssygt let at bruge
vi vil gøre en oversigt over et par andre tjenester til rådighed for dig senere i dette kursus, men generelt setup på tværs af disse forskellige tjenester er meget ens!
forberedelse af dit miljø
den anden ting, du skal vide, når du udvikler til iOS, er, at Apple ikke lader dig sende push-meddelelser til apps, der kører i emulatoren; du skal bruge en rigtig enhed. Vi anbefaler, at du tester alle funktioner, som push-meddelelsen påberåber sig i emulatoren, og når din app er bygget ud, skal du indlæse din app på en rigtig enhed for at sikre, at push-meddelelser faktisk modtages.
opsætning af Parse
for at få dette projekt til at fungere specifikt for din app, er vi nødt til at bytte dine unikke nøgler og identifikatorer:
på dette tidspunkt skal dit projekt kunne køres! Der er virkelig kun to ting, du skal ringe, når du bruger Parse: initialize
, som sikrer, at denne enhed er registreret til push notifikationer, og subscribe
, som vil abonnere denne specifikke telefon til enhver kanal, du giver. Der er også en tredje metode getInstallationId
, der returnerer installations-ID ‘et for denne Parse-bruger, men det er kun nyttigt, hvis du dykker dybt ned i nogle af Parse’ s mere avancerede funktioner.
lad os tage et hurtigt øjeblik at gennemgå koden, der forbinder vores app til at analysere i www/app.js
:
window.parsePlugin.initialize(appId, clientKey, function() { console.log('Parse initialized successfully.'); window.parsePlugin.subscribe('SampleChannel', function() { console.log('Successfully subscribed to SampleChannel.'); window.parsePlugin.getInstallationId(function(id) { // update the view to show that we have the install ID console.log('Retrieved install id: ' + id); /** * Now you can construct an object and save it to your own services, or Parse, and corrilate users to parse installations * var install_data = { installation_id: id, channels: } * */ }, function(e) { console.log('Failure to retrieve install id.'); }); }, function(e) { console.log('Failed trying to subscribe to SampleChannel.'); }); }, function(e) { console.log('Failure to initialize Parse.'); });
dette er ikke forfærdeligt kompliceret at se på, men bemærk at det køres, efter at alle Cordova apps er blevet indlæst i $ionicPlatform.ready
. Dette er vigtigt, da vi ikke ønsker at ringe til window.parse
metoder, hvis Parse-pluginet ikke er tilgængeligt for os endnu! En anden ting at bemærke er, at denne kode bliver fyret hver gang appen åbnes. Du kan ringe initialize
og subscribe
til den samme kanal så mange gange du vil, uden at det påvirker brugeren, din Parse-konto eller APN ‘ er/GCM. Faktisk er det nok bedst, at du gør dette for at sikre, at brugeren ikke ved et uheld slukker push-meddelelser til din app siden sidste gang de brugte den.
da denne app nu abonnerer på ‘SampleChannel’ Parse-kanalen, betyder det, at vi nu kan sende push-meddelelser til den. Som det ses i videoen ovenfor, kan du gøre dette gennem Parse Push dashboard ved at angive ‘SampleChannel’ som målet. Men hvis du bygger en produktionsklar applikation, vil du sandsynligvis sende push-meddelelser programmatisk fra din server via Parse ‘ s REST API.
afsendelse af push-meddelelser via kanaler er ikke kun godt for grupper af brugere, men du kan også bruge if til individuelle brugere. For eksempel kan du programmatisk oprette unikke kanaler for hver enkelt af dine brugere ved blot at abonnere dem på en kanal med deres bruger-ID tilføjet til slutningen af den (dvs. window.parsePlugin.subscribe('thinkster-user-' + userID)
). Selvom dine brugere logger ind på nye enheder, kan du fortsætte med at sende dem push-meddelelser bare ved at kende deres bruger-ID!