1

我已经在应用程序中实现了推送通知,它们运行良好。

但现在我试图弄清楚当您收到推送并且应用程序处于活动状态时如何实现自定义视图。

我想复制像 Instagram 这样的东西,(见附图)

在此处输入图像描述

但我不明白怎么做,因为现在如果应用程序打开并且您收到推送,则应用程序默认显示警报,并带有通知文本。

我的代码didReceiveRemoteNotification是:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

 ...

 else if (application.applicationState == UIApplicationStateActive) {

     NSString *text = [[userInfo objectForKey:@"aps"] objectForKey:@"alert"];
     NSLog(@"text remoteNot active = %@",text);

     NSString *custom = [[userInfo objectForKey:@"aps"] objectForKey:@"custom"];
     NSLog(@"custom remoteNot active = %@",custom);
  }
}

因此,我想知道即使不编写代码也能看到警报默认值是否是一种标准行为。而且我也知道如何避免默认显示警报,并显示自定义警报。

4

1 回答 1

0

不,如果您的操作正确,iOS 将不会显示当前活动应用程序的通知。

我想你已经有了

[application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

并且你检查过

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken

被正确调用。

请注意,有一个新版本的远程通知处理程序:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler;

如果您定义了那个,则不会调用“旧”的那个。

您确定通知已发送到“正确”的应用程序吗?在开发中很容易混淆...

于 2014-06-27T13:14:12.220 回答