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
Implementieren Sie die Push-Benachrichtigung für die App, indem Sie die Schritte in Push-Benachrichtigung.
Vergewissern Sie sich, dass Sie eine Text-Push-Nachricht an Ihre App senden können.
hinzufügen Sie eine Benachrichtigungsdiensterweiterung, indem Sie die folgenden Schritte ausführen:
NotificationService.m
vorhanden ist.Ö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.