Push Notifications ohne eigenen Server?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Push Notifications ohne eigenen Server?

    Hey Leute,

    Ich versuche seit diesem Wochenende, in meiner App Push Notifications einzubauen. Dabei ist es mir durch dieses Tutorial schon gelungen, die ersten Nachrichten auf mein iPhone zu schicken. Aber bis jetzt kann ich das nur von meinem MacBook aus. Im nächsten Tutorial erstellt man dann einen Webserver, der das Verschicken von Nachrichten auch mit einem anderen Gerät ermöglicht.
    Da ich aber keinen Webserver habe, und dafür eigentlich auch kein Geld ausgeben will, nutze ich bisher meine Fritzbox, auf der ein FTP-Server mit Textdateien liegt, die die Daten enthalten, welche zwischen verschiedenen Geräten verschickt werden. Dabei habe ich zwei Apps, eine, in der Bestellungen gemacht werden können, welche dann auf den Server geladen werden, und die andere, welche auf einem iPad läuft und einem Verkäufer ermöglicht, Bestellungen zu bestätigen, bearbeiten etc. Da diese App immer läuft, sind keine APNs nötig, aber für die Bestätigungen brauche ich Push Notifications.
    Ist es jetzt wirklich nötig, einen Server mit MySQL und PHP zu haben (was ich ehrlich gesagt kompliziert finde und ich nicht so die Zeit habe mich einzuarbeiten) oder kann man auch direkt vom iPad aus APNs an bestimmte "device tokens" schicken? Das würde mir einige Arbeit ersparen ;)

    Danke schon mal im voraus,

    Hendrik Gruß
  • Bei Amazon kostet das erste Jahr so ein kleiner Server in der cloud nichts. Wenn du dich damit beschäftigen willst, wäre das doch was. Ansonsten urban Airship - auch gratis bis zu 1 Mio Push notifications im Monat. Ich glaube nicht dass man dies am iPad selbst hinbekommt.
    _____________________________
    Alle Angaben ohne Gewähr :)

    On the internet you can be anything you want. It's strange that so many people choose to be stupid.


    Superbientem animus prosternet
  • Das sieht vielversprechend aus :)
    Habs grad mal runtergeladen. Weißt du was ich da jetzt genau eingeben muss, damit ich ne Push Notifikation an mein iPhone schicke? Das Token habe ich ja und Certificate auch, aber da tut sich nix auf meinem iPhone. Brauch ich vielleicht noch ein neues Zertifikat? Und an welche App wird überhaupt geschickt?

    @Alex Ja, Urban Airship habe ich mir grade angeschaut. Aber steht da nicht auch 45 Tage testen? Ich mein sonst kostet das 199$ im Monat...
    Aber auf den 1. Blick sieht das echt gut aus :) Wie würde das denn dann genau funktionieren? Benutzt man dann eine API von denen um an bestimmte Geräte zu schicken, nur halt über deren Server? Und was ist dann der Unterschied zu dem kleinen Programm, das DroneDeveloper gepostet hat?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Apple-Entwickler ()

  • So, jetzt hab ich mich mal ein bisschen mit den Möglichkeiten befasst. 8)

    Meiner Meinung nach ist Urban Airship wirklich eine gute Möglichkeit. Hab mich erst verlesen, es gibt eine 45-Tage Test Version von der Pro Variante, ansonsten ist es umsonst :)
    Wenn ich dieses Tutorial durch habe, müsste ich eigentlich wissen wie das genau geht. Da wird sogar Urban Airship für Push Notifications benutzt.

    Danke erstmal für die Hilfe, vielleicht meld ich mich nochmal in ein paar Tagen, wenn's noch Probleme gibt.

    Euer Hendrik Gruß
  • Ich habs jetzt soweit am laufen, dass ich von der Internetseite von Urban Airship aus Push Notifications an mein iPhone senden kann und mit dem Konsolentool curl. Aber wie mache ich das jetzt mit einer App, die auf dem iPad (oder einem anderen iOS-Device) läuft? Man soll ja ein HTTP POST zu https://go.urbanairship.com/api/push/ senden. Da ich mich mit JSON und solchen Requests nicht auskenne, wäre ein kleiner Beispielquelltext nicht schlecht... ;)

    Mein Ansatz wäre so:

    Quellcode

    1. NSURL *pushURL = [NSURL URLWithString:@"https://go.urbanairship.com/api/push/"];
    2. NSMutableURLRequest *pushRequest = [[NSMutableURLRequest alloc] initWithURL:pushURL];
    3. [pushRequest setHTTPMethod:@"POST"];
    4. NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:pushRequest delegate:self];
    5. [connection start];


    Aber wo muss ich diese JSON Payload eingeben?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Apple-Entwickler ()

  • Oh, Mist das hätte mir wirklich auffallen sollen... Aber ich dachte am Ende von dem iOS Bereich käme nichts mehr.
    Die Client Push Library tab ich leider nich gesehen

    Danke nochmal :)

    Edit: Ehrlich gesagt hilft mir diese Library aber nicht wirklich weiter. Die ist nur dazu da um das Empfangen von Notifications zu vereinfachen. Ich möchte aber Notifications senden. Wo finde ich denn dieses SDK in der Dokumentation? Eine Suche nach SDK auf der Seite liefert leider keine Ergebnisse...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Apple-Entwickler ()

  • So, hier jetzt nochmal die Erklärung wie es geklappt hat (für die, die vielleicht auch mal so ein Problem haben).

    Das oben genannte SDK heißt Suburban Airship. Um es zu benutzen muss man in den Einstellungen der App auf der Urban Airship Website "Push From Device" erlauben. Dann lässt sich, nachdem man das Framework im Projekt eingefügt hat, eine Klasse Suburban Airship mit dem Application Key, Application Secret und Application Master Secret der App initialisieren. Alle Nachrichten werden mit der Methode pushAlert an das aktuelle Token gesendet, welches mit der Methode putToken gesetzt werden kann.
    In meinem Fall wollte ich von der iPad App an eine andere App Nachrichten senden. Dazu erstellt man noch eine zweite Instanz der Klasse mit dem Key, Secret und Master Secret der anderen App. Wenn jetzt

    Quellcode

    1. pushAlert(@"Hello World!");

    eingegeben wird, erscheint auf (in meinen Fall) der iPhone App die Nachricht "Hello World!" :)

    Das Framework findet man hier.

    Schließlich noch ein Dankeschön für die Hilfe, auch wenn ich mir den meisten Teil selbst zusammen suchen musste...