IOS,处理程序推送通知

IOS, handler push notification

有什么方法可以处理当他不在应用程序(后台)时进入设备的推送通知?

假设我的 apns 发送消息:"hello world" 当应用程序在后台时,我想在设备显示推送通知之前更改消息(不是通过服务器,通过我的应用程序)。

你应该可以做到这一点。您可以获得静默推送通知。当您收到通知时,根据需要对其进行更改,然后安排一个包含您想要显示的警报的本地通知。完全披露,我实际上并没有尝试过这个。

您需要使用 Silent Push Notifications 执行此操作,因为在使用 正常 推送通知时您无法更改消息(OS 将收到消息时显示消息)。

当您发送静默推送时,您可以在您的应用委托中处理它,然后安排本地通知:

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

    NSDictionary *apsPayload = [userInfo objectForKey:@"aps"];
    if ([userInfo[@"content-available"] boolValue] /* silent push */) {
        UILocalNotification *localNotification = [[UILocalNotification alloc] init];
        localNotification.alertBody = @"Hello Local World!";
        localNotification.fireDate = [NSDate date];
        localNotification.timeZone = [NSTimeZone defaultTimeZone];
        localNotification.soundName = UILocalNotificationDefaultSoundName;
        [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    }
}