我正在为ios使用windows azure服务总线通知中心
我通过以下代码注册我的设备:
SBNotificationHub* hub = [[SBNotificationHub alloc] initWithConnectionString:
@"Endpoint=sb://......" notificationHubPath:@"...."];
NSMutableSet *set = [NSMutableSet set];
[set addObject:@"general"];
[hub registerNativeWithDeviceToken:deviceToken tags:[set copy] completion:^(NSError* error) {
if (error != nil) {
NSLog(@"Error registering for notifications: %@", error);
[self.delegate homePopUpViewControllerEnterButtonPress:self];
}
}];
使用以下代码从.Net Backend发送通知:
var hubClient = NotificationHubClient.CreateClientFromConnectionString(<connection string>, "<notification hub name>");
IDictionary<string, string> properties = new Dictionary<string, string>();
properties.Add("badge", "1");
properties.Add("alert", "This is Test Text");
properties.Add("sound", "bingbong.aiff");
hubClient.SendTemplateNotification(properties, "general");
我能够收到通知但我的问题是:通知没有我添加的任何属性,没有声音,没有徽章......
如果可以请帮助我
参考:http://msdn.microsoft.com/en-US/library/jj927168.aspx
谢谢
答案 0 :(得分:4)
您注册了本机通知,但之后您正在发送模板通知。 如果您想发送本机(如果您想要访问不同平台上的设备,则需要额外的发送),您必须使用
hub.SendAppleNativeNotification(
"{ \"aps\": { \"alert\": \"This is my alert message for iOS!\"}}", "tag");
有关iOS有效内容格式,请参阅https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html。
或者,您可以使用以下方式注册模板通知:
NSString* template = @"{aps: {alert: \"$(myToastProperty)\"}}";
[hub registerTemplateWithDeviceToken:deviceToken
name:@"myToastRegistration"
jsonBodyTemplate:template
expiryTemplate:nil
tags:nil
completion:^(NSError* error) {
if (error != nil) {
NSLog(@"Error registering for notifications: %@", error);
}
}];
使用如下模板:
{
“aps”: {
“alert”: “$(alert)”
}
}
然后您可以像使用hub.SendTemplateNotification一样发送通知。
有关模板与本机之间差异的详细信息,请参阅:http://msdn.microsoft.com/en-us/library/jj927170.aspx