implementera push-meddelanden i din app
för några år sedan började tjänster dyka upp som förde enkelheten hos typiska pub/sub-system för att trycka på meddelanden. Istället för att manuellt spåra användarens telefon ID individuellt, dessa tjänster kan du helt enkelt prenumerera dina användare till önskade kanaler för att ta emot push-meddelanden från.
till exempel, om en användare vill bli meddelad när en kurs om Javascript publiceras på Thinkster, kan vi prenumerera dem på en kanal som heter ”javascript” som tusentals andra användare också kan prenumerera på. Men för att utlösa en push – anmälan till alla dessa användare skulle bara ta en rad kod-helt enkelt publicera en push-anmälan till ”javascript” kanal och alla våra användare kommer att få det. Jämför detta med att fråga din databas som innehåller användarens telefon-ID, segmentera vilka användare som vill bli underrättade om Javascript och sedan skicka ut aviseringar individuellt för var och en av dem till APN/GCM. Usch!
det finns några tjänster där ute som tillhandahåller denna pub/sub-funktionalitet, men vid denna tidpunkt rekommenderar vi starkt att du använder Parse för att hantera dina push-meddelanden. Här är varför: – det är allmänt antaget och strider härdat från användning över 100 000+ appar – Det är gratis att skicka ett obegränsat antal push-meddelanden så länge du har < 1 miljon användare (!!!(efter att du måste betala en ynka fem cent per tusen ytterligare användare) – deras plugins och API är vansinnigt lätt att använda
vi kommer att göra en översikt över ett par andra tjänster tillgängliga för dig senare i denna kurs, men i allmänhet installationen över dessa olika tjänster är mycket lika!
förbereda din miljö
det andra du behöver veta när du utvecklar för iOS är att Apple inte låter dig skicka push-meddelanden till appar som körs i emulatorn; du måste använda en riktig enhet. Vi rekommenderar att du testar alla funktioner som push-aviseringen kommer att åberopa i emulatorn, och sedan när din app är byggd måste du ladda din app på en riktig enhet för att säkerställa att push-aviseringar faktiskt tas emot.
ställa in Parse
för att få det här projektet att fungera för din app specifikt måste vi byta dina unika nycklar och identifierare:
vid denna tidpunkt bör ditt projekt köras! Det finns egentligen bara två saker du behöver ringa när du använder Parse: initialize
, vilket säkerställer att den här enheten är registrerad för push-meddelanden, och subscribe
, som kommer att prenumerera på den här specifika telefonen till vilken kanal du tillhandahåller. Det finns också en tredje metod getInstallationId
som kommer att returnera installations-ID för denna Parse-användare, men det är bara användbart om du dyker in i några av parses mer avancerade funktioner.
Låt oss ta ett snabbt ögonblick för att granska koden som ansluter vår app för att analysera 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.'); });
det här är inte fruktansvärt komplicerat att titta på, men notera att det körs efter att alla Cordova-appar har laddats i $ionicPlatform.ready
. Detta är viktigt, eftersom vi inte vill ringa window.parse
metoder om Parse plugin är inte tillgänglig för oss ännu! En annan sak att notera är att den här koden kommer att sparkas varje gång appen öppnas. Du kan ringa initialize
och subscribe
till samma kanal så många gånger du vill utan att det påverkar användaren, ditt Parse-konto eller APN/GCM. I själva verket är det förmodligen bäst att du gör detta för att säkerställa att användaren inte av misstag stängde av push-meddelanden för din app sedan förra gången de använde den.
eftersom den här appen nu prenumererar på ’SampleChannel’ Parse-kanalen betyder det att vi nu kan skicka push-meddelanden till den. Som framgår av videon ovan kan du göra detta genom Parse Push dashboard genom att ange ’SampleChannel’ som mål. Men om du bygger en produktionsklar applikation vill du förmodligen skicka push-meddelanden programmatiskt från din server via parses REST API.
skicka push-meddelanden via kanaler är inte bara bra för grupper av användare, men du kan också använda om för enskilda användare samt. Du kan till exempel programmässigt skapa unika kanaler för var och en av dina användare genom att bara prenumerera på en kanal med deras användar-ID bifogat till slutet av det (dvs. window.parsePlugin.subscribe('thinkster-user-' + userID)
). Även om dina användare loggar in på nya enheter kan du fortsätta skicka dem push-meddelanden bara genom att känna till deras användar-ID!