远程通知无法正常工作

时间:2018-11-06 19:05:39

标签: ios objective-c apple-push-notifications

我正在尝试使我的远程通知正常工作,但是遇到了一些问题。

我正在从服务器发送通知,并将docker stop chef 标志设置为content-available,从而触发了我的1,并通过触发didReceiveRemoteNotification中的以下方法:

didReceiveRemoteNotification

在应用程序处于暂停状态时发送的通知根本不会显示,而是在应用程序打开然后再次关闭后显示,如下所示:

- (void) showPush:(NSString *)message
{

  UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];

  UNMutableNotificationContent *content = [UNMutableNotificationContent new];
  content.body = message;
  content.sound = [UNNotificationSound defaultSound];

  NSString *identifier = @"UYLLocalNotification";
  UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier
                                                                        content:content trigger:nil];

  [center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
    if (error != nil) {
      NSLog(@"Something went wrong: %@",error);
    }
  }];
}

任何关于为什么此方法无法按预期工作的建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

我认为您需要通过一个稍有不同的应用程序代表回电来调用showPush

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

此回拨文档的文档:

  

与application(_:didReceiveRemoteNotification :)方法不同,该方法   仅当您的应用在前台运行时才被调用   当您的应用在前台运行时调用此方法,或者   背景。

请参阅:https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application?language=objc

答案 1 :(得分:0)

通知可以是面向用户的(警报,徽章或声音),也可以是无提示的(可用内容)。他们不能两者兼而有之。

当通知同时包含两个面向用户的元素时,表示无提示推送APNS的内容可用标志和设备将进入未定义状态。