Ich muss Benachrichtigungen an Zehntausende von iOS-Geräten, die meine App installiert hat Push-Benachrichtigungen. Ich versuche es mit PushSharp, aber mir fehlen einige grundlegende Konzepte. Zuerst habe ich versucht, dies in einem Windows-Dienst auszuführen, aber ich konnte es nicht funktionieren lassen - NULL-Referenzfehler vom Aufruf _push.QueueNotification() stammend. Dann habe ich genau das, was die dokumentierte Beispielcode hat und es funktionierte:Push-Benachrichtigungen mit PushSharp - die Grundlagen
PushService _push = new PushService();
_push.Events.OnNotificationSendFailure += new ChannelEvents.NotificationSendFailureDelegate(Events_OnNotificationSendFailure);
_push.Events.OnNotificationSent += new ChannelEvents.NotificationSentDelegate(Events_OnNotificationSent);
var cert = File.ReadAllBytes(HttpContext.Current.Server.MapPath("..pathtokeyfile.p12"));
_push.StartApplePushService(new ApplePushChannelSettings(false, cert, "certpwd"));
AppleNotification notification = NotificationFactory.Apple()
.ForDeviceToken(deviceToken)
.WithAlert(message)
.WithSound("default")
.WithBadge(badge);
_push.QueueNotification(notification);
_push.StopAllServices(true);
Ausgabe # 1: Das funktioniert perfekt, und ich sehe die Meldung auf dem iPhone auftauchen. Da es sich jedoch um einen Push-Dienst handelt, ging ich davon aus, dass es sich wie ein Dienst verhalten würde - das heißt, ich instanziiere es und rufe möglicherweise _push.StartApplePushService() in einem Windows-Dienst auf. Und ich dachte eigentlich meine Benachrichtigungen Schlange, ich dies auf dem Front-End tun könnte (app admin, sagen wir mal):
PushService push = new PushService();
AppleNotification notification = NotificationFactory.Apple()
.ForDeviceToken(deviceToken)
.WithAlert(message)
.WithSound("default")
.WithBadge(badge);
push.QueueNotification(notification);
Offensichtlich (und wie ich schon sagte), es hat nicht funktioniert - die In der letzten Zeile wurde eine Nullreferenzausnahme geworfen.
Ich habe Probleme, irgendeine andere Art von Dokumentation zu finden, die zeigen würde, wie man dies in einer Service/Client-Weise einrichtet (und nicht einfach alles auf einmal aufruft). Ist es möglich oder fehlt mir der Sinn, wie PushSharp eingesetzt werden sollte?
Issue # 2: Auch kann ich nicht auf einmal viele Geräte-Tokens zu zielen, ohne sie zu Looping und Schlange stehen Benachrichtigungen einer nach dem anderen scheinen, einen Weg zu finden. Ist das der einzige Weg oder verpasse ich auch hier etwas?
Vielen Dank im Voraus.
Ich bekomme immer eine rote Linie unter "NotificationFactory" und "PushService" fehlt mir etwas zu enthalten? –
welche PushSharp-Version verwenden Sie?> – Lakshay