2017-02-02 4 views
1

WNS에서 알림을받는 C#/UWP 앱이 있으며 Azure 알림 허브 테스트 페이지를 사용하여 원시 알림을 보낼 수 있습니다. 유일한 문제는 서식 파일 알림을 보낼 때 원시 알림을 수신하기 위해 허브에 장치를 등록 할 수 없다는 것입니다. 이것은 기본 코드입니다 :Azure 알림 Hub에 WNS 원시 템플릿 등록

PushNotificationChannel channel = await PushNotificationChannelManager. 
    CreatePushNotificationChannelForApplicationAsync(); 
NotificationHub hub = new NotificationHub(NotificationSettings.HubName, 
    NotificationSettings.HubListenConnectionString); 
TemplateRegistration registration = await hub. 
    RegisterTemplateAsync(channel.Uri, template, "data", tags); 

내가 알아 내려고하는 것은 템플릿의 가치가 무엇인지를 단지 데이터를 그대로 전달하도록해야합니다. 분명히 거기에 "WNS/원시 템플릿"옵션입니다하지만 난 하나를 등록하는 방법에 어떤 문서를 찾을 수 없습니다

The bodyTemplate is not in accepted XML format. The first node of the bodyTemplate should be Badge/Tile/Toast, except wns/raw template, which need to be an valid XML 

해당 메시지로 : 이것은 내가 등록시 얻을 오류입니다. 원시 데이터의 실제 형식은 JSON입니다. 데이브 고 Smits의 도움에서

고정 코드 :

PushNotificationChannel channel = await PushNotificationChannelManager. 
    CreatePushNotificationChannelForApplicationAsync(); 
NotificationHub hub = new NotificationHub(NotificationSettings.HubName, 
    NotificationSettings.HubListenConnectionString); 
WnsHeaderCollection wnsHeaderCollection = new WnsHeaderCollection(); 
wnsHeaderCollection.Add("X-WNS-Type", @"wns/raw"); 
TemplateRegistration registration = 
    new TemplateRegistration(channel.Uri, template, "test", 
     tags, wnsHeaderCollection); 
Registration r = await hub.RegisterAsync(registration); 

답변

4

내가했다고 생각합니다 전에이 있었다. 헤더를 추가해야합니다. 도움이됩니다.

WnsHeaderCollection wnsHeaderCollection = new WnsHeaderCollection(); 
wnsHeaderCollection.Add("X-WNS-Type", @"wns/raw"); 
WindowsTemplateRegistrationDescription registrationDescription = new WindowsTemplateRegistrationDescription("<channel uri", "<template payload>", wnsHeaderCollection, tags); 
notificationHubClient.CreateRegistrationAsync(registrationDescription);