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.

Auf dieser Seite