Azure Service Bus通知中心的ios通知模板

时间:2013-07-05 02:36:11

标签: azure notifications apple-push-notifications azureservicebus

我正在为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

谢谢

1 个答案:

答案 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