我正在尝试使我的远程通知正常工作,但是遇到了一些问题。
我正在从服务器发送通知,并将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);
}
}];
}
任何关于为什么此方法无法按预期工作的建议将不胜感激。
答案 0 :(得分:1)
我认为您需要通过一个稍有不同的应用程序代表回电来调用showPush
:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
此回拨文档的文档:
与application(_:didReceiveRemoteNotification :)方法不同,该方法 仅当您的应用在前台运行时才被调用 当您的应用在前台运行时调用此方法,或者 背景。
答案 1 :(得分:0)
通知可以是面向用户的(警报,徽章或声音),也可以是无提示的(可用内容)。他们不能两者兼而有之。
当通知同时包含两个面向用户的元素和时,表示无提示推送APNS的内容可用标志和设备将进入未定义状态。