iOS中的Urban Airship SDK集成和推送通知

前端之家收集整理的这篇文章主要介绍了iOS中的Urban Airship SDK集成和推送通知前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们使用这些 guidelines集成了Urban SDK.

我们尝试使用ad hoc配置文件检查推送通知,我们在AirshipConfig.plist中设置了以下值

> inProduction = YES
> productionAppKey =我们的生产关键
> productionAppSecret =我们的生产秘密

请检查我们在项目的AppDelegate文件中实现的以下代码.

-(void) applicationDidFinishLaunching: (UIApplication *)application
{
.
.
.
.
 UAConfig *config = [UAConfig defaultConfig];
 config.automaticSetupEnabled=NO;
 [UAirship takeOff:config];

 if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)])
    {
        NSLog(@"------------REGISTER DEVICE------------: >= 8");
        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
    }
    else
    {
        NSLog(@"------------REGISTER DEVICE------------: <8 ");
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
         (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
    }
.
.
.
.

}

#pragma mark Remote Notification methods


-(void) application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken // Device Registration
{
    [[UAirship push] appRegisteredForRemoteNotificationsWithDeviceToken:devToken];

}
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
    [[UAirship push] appRegisteredUserNotificationSettings];

}
-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
   NSLog(@"%@",error);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    NSLog(@"NOTIFICATION------------ didReceiveRemoteNotification ------------ %@",userInfo);
    [[UAirship push] appReceivedRemoteNotification:userInfo applicationState:application.applicationState];
}

当我们尝试将通知发送到已注册的设备令牌时,服务器会将该设备令牌显示为INACTIVE设备令牌.

请告诉我该怎么办.

解决方法

所以,首先看起来你错过了一些app delegate methods.

Urban Airship处理APNS注册.删除您的手动注册呼叫,因为UA将覆盖它们,而是通过[UAirship push] .userPushNotificationsEnabled = YES;启用通知.它应该提示用户接受通知,然后应该选择Urban Airship频道.

猜你在找的iOS相关文章