Ricevere notifiche push potenziate

Puoi allegare file di immagine alle notifiche Apple. L’aggiunta di componenti visivi può aumentare notevolmente il coinvolgimento degli utenti con le notifiche push.

Per ricevere notifiche push potenziate nell’app iOS:

  1. Implementa i messaggi push per l'app, completando i passaggi descritti in Messaggi push.

  2. Verifica di poter inviare un messaggio push di testo all’app.

  3. Aggiungi un'estensione del servizio di notifica completando i seguenti passaggi:

    1. Nel progetto Xcode, seleziona File > Nuovo > Target.
    2. Seleziona Estensione servizio notifiche.
    3. Verifica che esista il file NotificationService.m.
  4. Apri il file NotificationService.m e verifica che siano presenti i seguenti metodi delegate:

    • Un metodo per ricevere una richiesta di notifica.

    • Un metodo per gestire la scadenza dell’estensione del servizio.

      Per ricevere notifiche push potenziate, viene utilizzato il primo metodo:

      (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent *contentToDeliver))contentHandler;
      

      Con questo metodo, puoi ottenere l’URL del file multimediale da userInfo usando la chiave attachment-url. Dopo aver scaricato il file in una directory locale, aggiungi il percorso locale a bestAttemptContent.attachments.

      Esempio del codice per questo metodo:

      - (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];
       }
      }
      

Per ulteriori informazioni sulle notifiche push potenziate con iOS, consulta UNNotificationAttachment.

In questa pagina