用户通知 ios 10

UserNotification ios 10

我想在 UserNotification(本地通知)中显示一个 gif 动画,但我只能在用户通知中显示一个图像,动画不会显示。我在 objective-c

中这样做

我的代码 //安排通知

NSString *UNExtensionID=@"animatedContentExtension";
NSError *error;
UNMutableNotificationContent *content = [[UNMutableNotificationContent    alloc] init];
content.title = [NSString localizedUserNotificationStringForKey:@"Test   Notification:" arguments:nil];
content.body = [NSString localizedUserNotificationStringForKey:@"Hello  there!It is a multimedia notification with animation!"
                                                     arguments:nil];
content.sound = [UNNotificationSound defaultSound];

UNNotificationAttachment *attachment;
 NSURL *url =  [[NSBundle mainBundle] URLForResource:@"bike" withExtension:@"png"];

 attachment=[UNNotificationAttachment attachmentWithIdentifier:@"imageID"
                                              URL: url
                                            options:nil
                                            error:&error];
content.attachments=@[attachment];
content.categoryIdentifier=UNExtensionID;

content.badge = @([[UIApplication sharedApplication] applicationIconBadgeNumber] + 1);
 UNTimeIntervalNotificationTrigger *trigger =    [UNTimeIntervalNotificationTrigger
                                              triggerWithTimeInterval:20.0f repeats:NO];
  UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:@"FiveSecond"
                                                                      content:content trigger:trigger];


UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
    if (!error) {
        NSLog(@"add NotificationRequest succeeded!");
    }
}];

// AppDelegate 中的这段代码 - (void)didReceiveNotificationRequest:(UNNotificationRequest *)请求 withContentHandler:(void (^)(UNNotificationContent *contentToDeliver))contentHandler{

 UNNotificationAttachment *attachment;
 NSError *error;

  UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init];
 NSURL *url =  [[NSBundle mainBundle] URLForResource:@"bike" withExtension:@"png"];

 attachment=[UNNotificationAttachment attachmentWithIdentifier:@"imageID"
                                                          URL:url
                                                      options:nil
                                                        error:&error];
    content=request.content.mutableCopy;
    content.attachments= @[attachment];
    `enter code here`contentHandler(content);

}

您必须将 .gif 文件添加到 Notification Service Extension 文件中。 您可以从中创建一个 UNNotificationAttachment 对象,并传入 UNNotificationServiceExtension 子类的 func didReceiveNotificationRequest(request: UNNotificationRequest, withContentHandler contentHandler: (UNNotificationContent) -> Void) 方法的 completionHandler。