Множественный обратный вызов для одного уведомления pushsharp оконный телефон

Я использую стандартный код push-уведомлений для оконного телефона с помощью pushsharp. Я получаю уведомление на устройстве. Но проблема в том, что я получаю несколько обратных вызовов для каждого события. например, для одного уведомления я получаю 5 обратных вызовов для созданного канала, отправленных уведомлений и т. д.

Пожалуйста, помогите мне, где я делаю неправильно.

 var push = new PushBroker();

        push.OnChannelCreated += push_OnChannelCreated;
        push.OnChannelDestroyed += push_OnChannelDestroyed;
        push.OnChannelException += push_OnChannelException;
        push.OnDeviceSubscriptionChanged += push_OnDeviceSubscriptionChanged;
        push.OnDeviceSubscriptionExpired += push_OnDeviceSubscriptionExpired;
        push.OnNotificationFailed += push_OnNotificationFailed;
        push.OnNotificationRequeue += push_OnNotificationRequeue;
        push.OnNotificationSent += push_OnNotificationSent;
        push.OnServiceException += push_OnServiceException;

        push.RegisterWindowsService(new WindowsPushChannelSettings("NotificationFra",
           "ms-app://s-1-15-2-", "bJl6kdPqXWtOclINfKNC"));
        //Fluent construction of a Windows Toast Notification
        push.QueueNotification(new WindowsToastNotification().WithLaunch("{\"message\":\"Hi PushNotification\",\"messageToken\":\"AbCD1A3@\",\"notificationType\":3}")
            .AsToastText01("Notification Test for Daily alerts intrade FTD MTD ")
            .ForChannelUri("https://hk2.notify.windows.com/?token=AwYAAAA%2b21ScKkaVZhp5vwRRPn7DWlEqvzKmTXy%2bNfcONUzq9PeglhxTLlD06%2fiLcgyuu9BbdeuY8Pgl"));

        push.StopAllServices(waitForQueuesToFinish: true);

person Community    schedule 10.09.2015    source источник
comment
Кто-нибудь знает об этом?   -  person    schedule 10.09.2015
comment
Любой может использовать приведенный выше код и воспроизвести проблему. Помогите мне, если кто-нибудь может решить эту проблему   -  person    schedule 11.09.2015


Ответы (1)


Я получил решение от службы поддержки,

Пожалуйста, не используйте RegisterWindowsService() (или RegisterWindowsPhoneService()), если вы хотите отправлять только один тип уведомлений (WindowsToastNotification (или скорее WindowsPhoneToastNotification) в вашем случае). Эти методы внутренне выполняют множественные регистрации для всех видов уведомлений. И вкупе с другим багом — вы получаете N обратных вызовов вместо одного.

Используйте универсальную службу RegisterService (или, скорее, RegisterService).

Основываясь на приведенном выше решении, я использовал приведенный ниже код для регистрации:

    var channel = new WindowsPushChannelSettings("NotificationFra", "ms-app://s-1-15-2-3763039301-", "bJl6kdPqXWtOclINfKNC");
        push.RegisterService<WindowsToastNotification>(new WindowsPushService(channel));
person Community    schedule 11.09.2015