Недавно я внедрил PushSharp в приложение, но хоть всю жизнь не могу понять, почему уведомление не появляется на устройстве.
Ниже приведен метод, который объединяется для проверки поведения:
private void SendPushNotification()
{
var push = new PushBroker();
//Wire up the events for all the services that the broker registers
push.OnNotificationSent += NotificationSent;
push.OnChannelException += ChannelException;
push.OnServiceException += ServiceException;
push.OnNotificationFailed += NotificationFailed;
push.OnDeviceSubscriptionExpired += DeviceSubscriptionExpired;
push.OnDeviceSubscriptionChanged += DeviceSubscriptionChanged;
push.OnChannelCreated += ChannelCreated;
push.OnChannelDestroyed += ChannelDestroyed;
push.RegisterGcmService(new GcmPushChannelSettings("My-API-Key-here"));
push.QueueNotification(new GcmNotification().ForDeviceRegistrationId("MyReallyLongRegisteredDeviceKeyHere")
.WithJson(@"{""alert"":""Hello World!"",""badge"":7,""sound"":""sound.caf""}"));
//Stop and wait for the queues to drains
push.StopAllServices();
}
Этот метод вызывается сразу после запуска приложения, поэтому я ожидаю, что сразу же получу уведомление, которого нет.
Что еще странно, так это то, что вызывается событие OnNotificationSent
, которое будет означать, что сообщение прошло.
Есть ли что-то еще, что мне нужно настроить, чтобы это работало? В документации указано, что идентификатор отправителя, имя пакета и ключ API необходимы для отправки уведомлений.
все, кроме ключа API, используются.
Любая помощь будет принята с благодарностью.
take a look at the PushService.cs file in the sample project. You can copy much of this class into your own App, but again be sure to substitute your own package name in where applicable (the BroadcastReceiver attributes need to be changed).
- person ztan   schedule 12.02.2015