Universität zu Köln Medien zwischen Technologie und Gesellschaft
Prof. Dr. Manfred ThallerWS 2012/13
Dominik Finkenberger
App Literatur iPhone Entwicklung
Push-Benachrichtigungen
Inhalt
1. Was sind Push-Benachrichtigungen?2. Bedingungen und Funktion
3. Unterstützung für mehrere Provider4. Sicherheitsaspekte
5. Einschränkungen von Push-Benachrichtigungen
6. Ein Push-System einrichten7. Die Benachrichtigung
1. Was sind Push-Benachrichtigungen?
Nachrichten eines externen DienstesClient/Server-SystemZustellung auf den Client iPhone
AnwendungRemote-Benachrichtigungssystem benötigtPush-Nachricht löst ein Badge, einen Klang,
oder eine Benachrichtigung aus, Aktualisierung möglich
1. Was sind Push-Benachrichtigungen?
Badge
Text
1. Was sind Push-Benachrichtigungen?
Vorteile: Nutzer muss die Anwendung nicht starten Akkukapazität wird geschont CPU-Ressourcen werden geschont Kanal für Webdienste (Kalender, News) Nutzer hat Entscheidungsfreiheit
2. Bedingungen und Funktion
Bedingungen jeweilige Anwendung muss installiert sein das iPhone muss online sein Nutzer muss Remote-Nachrichten erlauben Benachrichtigung darf 256 Bytes nicht überschreiten
2. Bedingungen und Funktion
Funktionsablauf: Server wird ausgelöst durch Ereignis (Mail,Termin)
etc Push-Provider stellt Nachricht dem zentralen Apple-
Server zu Server erstellt Benachrichtigungsdaten für ein
bestimmtes Gerät, welches diese weitergibt
3. Unterstützung für mehrere Provider
APNS ist ausgelegt für viele Provider-Verbindungen
realisiert über GatewaysProvider kann sofort Kontakt aufnehmen
4. Sicherheit
Push-Provider benötigt SSL-Zertifikat (https)Token (bezeichnet Gerät und Anwendung)Ablauf:
Eingang der authentifizierten Nachricht am APNS Verbindungseinrichtung zwischen APNS und iPhone onlineZustellung | offline Warteschlange
Zertifikat und Token sind sensible Informationen bei Missbrauch werden Zertifikate gesperrt Folge: Ausschluss der App aus dem App Store
5. Einschränkungen von Push-Benachrichtigungen
u.U. falsche Reihenfolge der NachrichtenNachrichten konkurrieren in der
Warteschlangemöglicherweise gehen Nachrichten verlorenkeine Mitteilung über verlorene Nachrichten
deswegen:keine wesentlichen Informationen sendennur Hinweise, deren Ausbleiben keine Folgen
hat
6. Ein Push-System einrichten
1. eindeutigen Anwendungsbezeichner erstellen Bsp: com.domänenname.anwendungsname
2. SSL-Zertifikat anfordern3. SSL-Zertifikat mit der App ID bezeichnen4. Push-spezifisches Profil anlegen5. eine Anwendung registrieren
beim ersten Start meldet sich die App beim Remote-Benachrichtigungssystem an
dabei werden die möglichen Benachrichtigungskanäle festgelegt (Badge, Sound, Text)
6. Ein Push-System einrichten
das Geräte-Token abrufen bezeichnet mit SSL-Zertifikat eindeutig ein iPhone iPhone fordert Token von APNS an und übergibt es
der Anwendung diese gibt das Token zurück an die
Providerkomponente Erst wenn dem Push-Provider das Token vorliegt,
kann dieser Benachrichtigungen senden
6. Ein Push-System einrichten
6. Ein Push-System einrichten
auf Nachrichten reagieren läuft die Anwendung , hat die Benachrichtigung keine
Auswirkung läuft nicht:
1. Badge wird angezeigt2. Nachricht wird angezeigt3. Klickt der Nutzer nicht auf „Abbrechen“, sondern auf
„Anzeigen“, so öffnet sich die betroffene Anwendung
7. Die Benachrichtigung
Anwendung benötigt ein NSDictionary (aps)Benachrichtigung und Attribute in JSONGesamte Nutzlast beträgt 256 Bytes
Darin enthalten: - Nachrichtentext (string, Dictionary) - Buttonfunktion; bei Bedarf Beschriftung (string,
Dictionary) - Sounddatei-Namen (Dateien müssen vorhanden
sein) - Art des Badges (number)
7. Die Benachrichtigung
Nutzlast Beispiel 1:
{ "aps" : { "alert" : "Message received from Bob" }}
Benachrichtigung wird angezeigt, außerdem erscheinen die Buttons „Anzeigen“ und „Abbrechen“
7. Die Benachrichtigung
Nutzlast Beispiel 2:
{ "aps" : { "alert" : { "body" : "Bob wants to play poker", "action-loc-key" : "PLAY" }, "badge" : 5, }
Nachricht wird angezeigt, statt „Anzeigen“ erscheint auf dem Button „Spielen“, Badge mit einer 5 wird angezeigtBesonderheit: PLAY ist eine Lokalisierungs-Variable passt sich der Benutzersprache an
7. Die Benachrichtigung
Nutzlast Beispiel 3:
{ „aps“ : "alert" : { "loc-key" : "GAME_PLAY_REQUEST
_FORMAT", "loc-args" : [ "Jenna", "Frank"] , ’’sound“ : “play.aiff“ }}
Localizable.strings im .lproj Ordner der aktuellen Sprache:"GAME_PLAY_REQUEST_FORMAT" = "%@ and %@ have invited you to play Monopoly";
7. Die Benachrichtigung
Nutzlast Beispiel 3:
lproj-Ordner enthält für jede Sprache einen Unterordner
Localizable.strings enthält wiederum Schlüssel-Wert-Paare
Nachricht: Jenna and Frank have invited you to play monopoly.
7. Die Benachrichtigung
Die mit iOS 4.0 neu-eingeführte Eigenschaft „launch-image“ ermöglicht Darstellung eines Bildes
App gelöscht, was nun? Apple verfolgt alle Zustellversuche und gibt dem
Benutzer passives Feedback Ist eine App deinstalliert worden, kommt sie nach
mehrmaligen fehlgeschlagenen Versuchen auf eine Liste Entwickler muss eigenständig die betroffenen Geräte-
Token von seiner Push-Liste nehmen
7. Die Benachrichtigung
Hinweise an Entwickler: Der Push-Dienst wird über APNS verteilt, ABER die
Kommunikation zum APNS ist Sache des Entwicklers Größe des Kundenstamms ist zu berücksichtigen, da die
Dienstschicht ebenso vom Entwickler bereitzustellen ist Bei 10.000 Nutzern und 15-minütigen Updates ergeben
sich 1.000.000 Zugriffe über Push am Tag, der Zeitraum zwischen Aktualisierungen ist jedoch oft kleiner große Rechenlast, die schwer zu bewältigen ist
Gut überlegen, ob man Push wirklich braucht, da ein einmal angebotener Dienst vom Benutzer auf Dauer erwartet wird
System einrichten, dass mit dem Benutzerstamm wachsen kann
Quellen
Sadun, Erica: Das große iPhone-Entwicklerbuch
https://developer.apple.com/library/ios/#documentation
Vielen Dank!
Noch Fragen?
Top Related