Vous pouvez joindre des fichiers image à vos notifications Apple. Ajouter des composants visuels peut augmenter considérablement l’engagement de vos utilisateurs avec les notifications Push.
Pour recevoir des notifications Push riches dans votre application iOS :
Mettez en œuvre la messagerie push pour l’application en suivant la procédure indiquée dans Messagerie Push.
Vérifiez que vous pouvez envoyer un message Push texte à votre application.
Ajoutez une extension de service de notification en procédant comme suit :
NotificationService.m
existe.Ouvrez le fichier NotificationService.m
et vérifiez que les méthodes déléguées suivantes existent :
Une méthode pour recevoir une demande de notification.
Une méthode pour gérer l'expiration de l'extension de service.
Pour recevoir des notifications Push enrichies, la première méthode est utilisée :
(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];
}
}
For more information about rich push notifications with iOS, see UNNotificationAttachment.