Я хотел бы показать вам мой пример, который я создал для использования в своем приложении. Я также использую Azure Mobile Services и Notification Hub.
Позвольте мне разделить его на две части:
- Windows Phone 8.1 код.
Тестовое приложение для отправки push-уведомлений.
В App.xaml.cs (Телефон проекта Windows) класс Я создал этот метод:
public static async void InitNotificationsAsync(string userName)
{
channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
string[] subscription = { userName };
receivingHub = new NotificationHub("yourappnotificationhub", "Endpoint=sb://yourappnotificationhub-ns.servicebus.windows.net/;....");
var result = await receivingHub.RegisterNativeAsync(channel.Uri, subscription);
// Displays the registration ID so you know it was successful
if (result.RegistrationId != null)
{
channel.PushNotificationReceived += OnPushNotification;
}
}
В массиве ПОДПИСКА Вы можете поместить имя пользователя или имя человека, который, например, в настоящее время вошли в ваше приложение. После заполнения массива подписки вы должны присоединить его к методу RegisterNativeAsync в качестве параметра рядом с вашим каналом Uri.
Теперь в вашем консольном приложении тестового уведомления толчка, вы можете проверить его с помощью этого метода:
private static async void SendNotificationAsync()
{
NotificationHubClient hub = NotificationHubClient
.CreateClientFromConnectionString("Endpoint=sb://menotifyappnotificationhub-ns.servicebus.windows.net/;SharedAccessKeyName=DefaultFullSharedAccessSignature;SharedAccessKey=\...", "yourappnotificationhub");
var toast = @"<toast><visual><binding template=""ToastText02""><text id=""1"">test</text><text id=""2"">Hello</text></binding> </visual></toast>";
await hub.SendWindowsNativeNotificationAsync(toast, "User_Name_You_Added_To_String_Array_In_WindowsPhoneApp");
}
Теперь, если вы пришлете толкать его будет посылать только к человеку, имя которого вы добавили в массив строк подписки в Windows Phone заявление.
Я также вставить код для обработки принятого толчок в приложении:
private static void OnPushNotification(PushNotificationChannel sender, PushNotificationReceivedEventArgs e)
{
String notificationContent = "";
switch (e.NotificationType)
{
case PushNotificationType.Badge:
notificationContent = e.BadgeNotification.Content.GetXml();
break;
case PushNotificationType.Tile:
notificationContent = e.TileNotification.Content.GetXml();
break;
case PushNotificationType.Toast:
notificationContent = e.ToastNotification.Content.GetXml();
//..DO SOME ACTION, FOR EXAMPLE SHOW MESSAGEDIALOG WITH PUSH MESSAGE
break;
case PushNotificationType.Raw:
notificationContent = e.RawNotification.Content;
break;
}
e.Cancel = true;
}
Я надеюсь, что это поможет.
Отлично работает, большое вам спасибо! – bari
Это похоже на использование в старых версиях WP 8.0 (Silverlight). Вам просто нужно иметь дело с HttpNotificationChannel вместо PushNotificationChannelManager и т. Д. – boski