无法通过Azure通知中心

时间:2015-09-01 03:24:17

标签: apple-push-notifications azure-notificationhub

我使用Azure通知中心创建了一个带推送通知的iphone应用。但是我很难让工作推进。

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

 /******** code for  Push notification   **********/

  UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge categories:nil];

[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
[[UIApplication sharedApplication] registerForRemoteNotifications];

NSLog(@"Entered appDelegate didFinishLaunchingWithOptions");

return YES;
}



  - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *) deviceToken {

   SBNotificationHub* hub = [[SBNotificationHub alloc] initWithConnectionString:@"<my azure listening connection string>" notificationHubPath:@"myhub"];

   NSLog(@" DeviceToken: %@",deviceToken);
   [hub registerNativeWithDeviceToken:deviceToken tags:nil completion:^(NSError* error) {
     if (error != nil) {

          NSLog(@"Error registering for notifications: %@", error);
      }
        else {
            [self MessageBox:@"Registration Status" message:@"Registered"];
      }
   }];
 }

-(void)MessageBox:(NSString *)title message:(NSString *)messageText {
   UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:messageText delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
    [alert show];
}



 - (void)application:(UIApplication *)application didReceiveRemoteNotification: (NSDictionary *)userInfo {
     NSLog(@"%@", userInfo);
       [self MessageBox:@"Notification" message:[[userInfo objectForKey:@"aps"] valueForKey:@"alert"]];
}

我已按照本文档中的步骤进行操作:

https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-ios-get-started/

我在会员中心创建了一个明确的应用ID,它与我的捆绑ID相匹配。我正在使用开发人员证书并在Azure下选择“沙盒”。

当我第一次将我的应用程序启动到我的iphone(而非模拟器)时,我得到接受推送通知的提示 - 我选择了是。然后我的代码从apple获取一个令牌并将其注册到Azure NH,这是成功的。

从Azure NH调试选项卡,我做了一个广播发送,已成功从Azure发送到APNS。但我从未收到任何通知。以下是Azure上推送通知消息的正文:

{“aps”:{“alert”:“通知中心测试通知”}}

我已经多次尝试过,甚至创建了一个独立的项目来测试推送通知(单独的证书,配置文件等),但它仍然不起作用。

当我故意使用Push的消息的有效负载格式化时,我确实得到了预期的错误所以看起来从NH到APNS的连接是好的。

我的要求是每月发送大约1亿次推送。

如果有人使用Azure通知进行推送通知,那么请建议如何解决这个问题?

如果有人对Azure NH的使用经验不佳,请分享您最终迁移到的内容。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我能够让它发挥作用。

我删除了Apple开发人员中心和我的mac上的所有证书。我重新创建了证书,然后再次执行该过程。这一切都完成了。

感谢。