Show Menu
SUJETS×

Réception de notifications push enrichies

Vous pouvez joindre des fichiers image à vos notifications Apple. L’ajout d’éléments visuels peut augmenter de façon notable l’engagement de vos utilisateurs vis-à-vis des notifications push.
Pour recevoir des notifications push enrichies dans votre application iOS :
  1. Mettez en œuvre la messagerie push pour l’application en suivant la procédure indiquée dans Messagerie Push .
  2. Assurez-vous que vous pouvez envoyer un message texte push à votre application.
  3. Ajoutez une extension de service de notification en suivant la procédure suivante :
    1. Dans votre projet Xcode, sélectionnez Fichier  > Nouveau  > Target .
    2. Sélectionnez Extension de service de notification .
    3. Vérifiez que le fichier NotificationService.m existe.
  4. Ouvrez le fichier NotificationService.m et vérifiez que les méthodes déléguées suivantes existent :
    • Une méthode destinée à recevoir la demande de notification.
    • Une méthode destinée à gérer l’expiration de l’extension de service.
      La première méthode est utilisée pour la réception de notifications push enrichies :
      (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent *contentToDeliver))contentHandler;
      
      
      Dans cette méthode, vous pouvez obtenir l’URL du média à partir de userInfo en utilisant la clé attachment-url . Après avoir téléchargé le fichier dans un répertoire local, ajoutez le chemin d’accès local à bestAttemptContent.attachments .
      Voici un exemple du code de cette méthode :
      - (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];
       }
      }
      
      
Pour obtenir plus d’informations sur l’utilisation de notifications push enrichies avec iOS, voir UNNotificationAttachment .