Si vous souhaitez personnaliser l'apparence des notifications locales et distantes, procédez comme suit
-
Créer un UNNotificationCategory
et ajouter à la UNUserNotificationCenter
catégorie :
let newCategory = UNNotificationCategory(identifier: "newCategory",
actions: [ action ],
minimalActions: [ action ],
intentIdentifiers: [],
options: [])
let center = UNUserNotificationCenter.current()
center.setNotificationCategories([newCategory])
-
Créer une UNNotificationContentExtension :
puis utilisez le code ou le storyboard pour personnaliser votre UIViewController
.
- Ajouter une catégorie à
UNNotificationContentExtension
s plist :
4. notification push
Notification locale
Créer un UNMutableNotificationContent
et définir les categoryIdentifier
à "newCategory" qui comprend UNUserNotificationCenter
et les catégories de l UNNotificationContentExtension
s plist :
let content = UNMutableNotificationContent()
content.title = ...
content.body = ...
content.categoryIdentifier = "newCategory"
let request = UNNotificationRequest.init(identifier: "newNotificationRequest", content: content, trigger: nil)
let center = UNUserNotificationCenter.current()
center.add(request)
Notification à distance
Définir "mutable-content : 1"
y "category : newCategory"
. Notez que la valeur de la catégorie est fixée à "newCategory", ce qui correspond à ce que vous avez ajouté précédemment dans le champ UNUserNotificationCenter
y UNNotificationContentExtension
s plist.
Ejemplo:
{
"aps" : {
"alert" : {
"title" : "title",
"body" : "Your message Here"
},
"mutable-content" : "1",
"category" : "newCategory"
},
"otherCustomURL" : "http://www.xxx.jpg"
}
- Remarque : vous devez disposer d'un appareil ou d'un simulateur qui prend en charge 3DTouch, sinon vous ne pourrez pas afficher un écran personnalisé.
UNNotificationContentExtension
Dans iOS10 Beta1, cela ne fonctionne pas. Mais maintenant cela fonctionne sans 3d touch
Et ... si vous voulez simplement afficher une image sur une notification push affichée sur l'écran de verrouillage, vous devez ajouter UNNotificationAttachment
:
let content = UNMutableNotificationContent()
content.title = ...
content.body = ...
content.categoryIdentifier = "newCategory"
let fileURL: URL = ... // your disk file url, support image, audio, movie
let attachement = try? UNNotificationAttachment(identifier: "attachment", url: fileURL, options: nil)
content.attachments = [attachement!]
let request = UNNotificationRequest.init(identifier: "newNotificationRequest", content: content, trigger: nil)
let center = UNUserNotificationCenter.current()
center.add(request)
Pour plus de détails, Démo
0 votes
Vous pouvez regarder la vidéo des développeurs de la WWDC. Elle explique la leçon "Rich Notifications".
2 votes
Si quelqu'un a besoin : - J'ai fondé le blogpost ci-dessous et résolu le problème : (Charger l'image à partir de l'url de la notification à distance) http://www.avanderlee.com/ios-10/rich-notifications-ios-10/ Et n'oubliez pas d'ajouter une ligne dans votre payload : "mutable_content" : true,
0 votes
Documentation : developer.apple.com/documentation/usernotifications/ y developer.apple.com/documentation/usernotifications/
2 votes
La première réponse est : MISLEADING. Pourquoi ? Parce que l'OP pose une question sur à distance notifications. Mais la réponse consiste principalement à montrer comment l'image est attachée et intégrée dès la création de la notification. localement . La seule façon de faire en sorte qu'une notification à distance montre son image est d'avoir une
NotificationServiceExtension
. ANotificationContentExtension
ne fonctionnera pas car il ne fait que rendre le contenu existant qui lui est transmis. La pièce jointe doit être transmise soit localement, soit téléchargée dans la base de données de l'utilisateur.NotificationServiceExtension
. Pour en savoir plus, voir developer.apple.com/videos/play/wwdc2016/708