OS X Push Notifications kommen nicht an?

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

  • OS X Push Notifications kommen nicht an?

    Heyhoo!!

    Frohes Neues!


    Ich habe irgendwie keine geringste Ahnung, warum meine Mac App keine Push Nachrichten bekommt.
    Unter iOS habe ich das schon ein paar Mal erfolgreich umgesetzt, ohne Probleme.
    Ich registriere in der Mac App für Badges und bekomme auch meinen Token.
    Wenn ich jetzt eine Notifcation schicke (via custom Script oder Urbainairship), kommt jedoch nichts an.

    Im AppDelegate registriere ich die Notifications und habe auch die Delegate Methoden für die Pushs implementiert.
    Davon wird aber nur -application: didRegisterForRemoteNotificationsWithDeviceToken: erfolgreich aufgerufen.
    -application: didReceiveRemoteNotification: leider nicht.

    Wo könnte ein Problem liegen?
    Das Zertifikat zum Versenden dürfte in Ordnung sein, bezieht sich alles auf Dev-Zertifikate. Urbainairship hat auch am Zertifikat nichts auszusetzen, beim custom Script
    (1:1 übernommen von iOS, bis auf alert&sound im JSON) wird auch kein Fehler zurück gegeben.
  • Das hatte ich noch nicht ausprobiert, habe das jetzt mal angepasst im Script, allerdings verstehe ich nicht ganz, wie ich auf die Response komme.

    PHP-Quellcode

    1. <?php
    2. $deviceToken = "xxx";
    3. $payload['aps'] = array('badge' => 42);
    4. $payload['test'] = array('test' => 'test');
    5. $payload = json_encode($payload);
    6. $apnsHost = 'gateway.sandbox.push.apple.com';
    7. $apnsPort = 2195;
    8. $apnsCert = 'xxx';
    9. $streamContext = stream_context_create();
    10. stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
    11. $apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
    12. if ($apns){
    13. $apnsMessage = chr(1). chr(1) . chr(0) . chr(1) . chr(0) . pack('N', time() + 86400). chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
    14. fwrite($apns, $apnsMessage);
    15. fclose($apns);
    16. }else{
    17. echo "Error!";
    18. var_dump($error);
    19. var_dump($errorString);
    20. }
    21. ?>
    Alles anzeigen


    Ich kann mit dem 'binary interface' Sample code irgendwie nichts anfangen…