Show Menu
ARGOMENTI×

Ricevere notifiche push potenziate

Puoi allegare dei file di immagini alle notifiche Apple. L'aggiunta di elementi visivi può notevolmente migliorare il tasso di 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 di testo push all'app.
  3. Aggiungi un'estensione del servizio di notifica, completando i passaggi descritti di seguito:
    1. Nel tuo progetto Xcode, seleziona File > Nuovo > Destinazione .
    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 la ricezione di una richiesta di notifica.
    • Un metodo per la gestione della scadenza dell'estensione del servizio.
      Per Ricevere notifiche push potenziate, si usa 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 sull'uso di notifiche push avanzate in iOS, vedi UNNotificationAttachment .