我使用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的使用经验不佳,请分享您最终迁移到的内容。
提前致谢。
答案 0 :(得分:0)
我能够让它发挥作用。
我删除了Apple开发人员中心和我的mac上的所有证书。我重新创建了证书,然后再次执行该过程。这一切都完成了。
感谢。