Show Menu
THEMEN×

Rich-Push-Benachrichtigungen empfangen

Sie können Grafikdateien an Ihre Apple-Benachrichtigungen anhängen. Das Hinzufügen visueller Komponenten kann die Interaktion Ihrer Benutzer mit Push-Benachrichtigungen erheblich erhöhen.
So empfangen Sie Rich-Push-Benachrichtigungen in Ihrer iOS-App:
  1. Implementieren Sie die Push-Benachrichtigung für die App, indem Sie die Schritte in Push-Benachrichtigung .
  2. Überprüfen Sie, ob Sie eine Text-Push-Nachricht an Ihre App senden können.
  3. So fügen Sie eine Benachrichtigungsdiensterweiterung hinzu:
    1. Wählen Sie in Ihrem Xcode-Projekt Datei > Neu > Target aus.
    2. Wählen Sie Benachrichtigungsdiensterweiterung aus .
    3. Überprüfen Sie, ob die Datei NotificationService.m vorhanden ist.
  4. Öffnen Sie die Datei NotificationService.m und überprüfen Sie, ob die folgenden Delegierungsmethoden vorhanden sind:
    • eine Methode zum Empfangen einer Benachrichtigungsanforderung.
    • eine Methode zum Verarbeiten des Diensterweiterungsablaufs.
      Zum Empfangen von Rich-Push-Benachrichtigungen wird die erste Methode verwendet:
      (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent *contentToDeliver))contentHandler;
      
      
      Mithilfe dieser Methode können Sie die Medien-URL von userInfo mithilfe des Schlüssels attachment-url abrufen. Nachdem Sie die Datei in ein lokales Verzeichnis heruntergeladen haben, fügen Sie den lokalen Pfad zu bestAttemptContent.attachments hinzu.
      Hier finden Sie einen Beispielcode in dieser Methode:
      - (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
      self.contentHandler = contentHandler;
      self.bestAttemptContent = [request.content mutableCopy];
         NSDictionary* userInfo = request.content.userInfo;
      if(userInfo[@"attachment-url"]){
         NSURL* url = [[NSURL alloc] initWithString:userInfo[@"attachment-url"]];
         NSURLSessionDownloadTask* task = [[NSURLSession sharedSession] downloadTaskWithURL:url completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
             if(!location){
                 return;
             }
             NSString* tmpDirectory = NSTemporaryDirectory();
             NSString* tmpFilePath = [NSString stringWithFormat:@"file://%@%d%d%@", tmpDirectory, arc4random_uniform(100000),
                                    arc4random_uniform(100000), [url lastPathComponent]];
             NSURL* tmpUrl = [[NSURL alloc] initWithString:tmpFilePath];
             NSError * fileError = nil;
             [[NSFileManager defaultManager] moveItemAtURL:location toURL:tmpUrl error:&fileError];
             if(fileError){
                 return;
             }
             UNNotificationAttachment* attachment = [UNNotificationAttachment attachmentWithIdentifier:@"video" URL:tmpUrl options:nil error:&fileError];
             if(fileError){
                 return;
             }
             self.bestAttemptContent.attachments = @[attachment];
             self.contentHandler(self.bestAttemptContent);
         }];
         [task resume];
       }
      }
      
      
Weitere Informationen zu Rich-Push-Benachrichtigungen mit iOS finden Sie unter UNNotificationAttachment .