Rich-Push-Benachrichtigungen empfangen

Sie können Bilddateien an Ihre Apple-Benachrichtigungen anhängen. Das Hinzufügen visueller Komponenten kann die Interaktion Ihrer Benutzer mit Push-Benachrichtigungen deutlich erhöhen.

So erhalten 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. Vergewissern Sie sich, dass Sie eine Text-Push-Nachricht an Ihre App senden können.

  3. hinzufügen Sie eine Benachrichtigungsdiensterweiterung, indem Sie die folgenden Schritte ausführen:

    1. Wählen Sie im Xcode-Projekt Datei > Neu > Zielgruppe.
    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 Benachrichtigungsanfrage.

    • Eine Methode zur Behandlung des Ablaufs der Diensterweiterung.

      Für den Empfang 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];
       }
      }
      

For more information about rich push notifications with iOS, see UNNotificationAttachment.

Auf dieser Seite