Se si desidera personalizzare l'aspetto delle notifiche locali e remoti, effettuare le seguenti operazioni:
Creare un UNNotificationCategory
e aggiungere alla categoria UNUserNotificationCenter
:
let newCategory = UNNotificationCategory(identifier: "newCategory",
actions: [ action ],
minimalActions: [ action ],
intentIdentifiers: [],
options: [])
let center = UNUserNotificationCenter.current()
center.setNotificationCategories([newCategory])
Creare un UNNotificationContentExtension :
quindi utilizzare il codice o lo storyboard per personalizzare lo UIViewController
.
- Aggiungi categoria ai
UNNotificationContentExtension
s' plist:
4.Push di notifica
notifica locale
Creare un UNMutableNotificationContent
e impostare il categoryIdentifier
a "Newcategory", che comprende 'categorie s e UNNotificationContentExtension
' UNUserNotificationCenter
plist s:
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)
remoto Notifica
Set "mutable-content : 1"
e "category : newCategory"
. Si noti che il valore della categoria è impostato su "newCategory" che corrisponde a quanto precedentemente aggiunto a UNUserNotificationCenter
e UNNotificationContentExtension
s plist.
Esempio:
{
"aps" : {
"alert" : {
"title" : "title",
"body" : "Your message Here"
},
"mutable-content" : "1",
"category" : "newCategory"
},
"otherCustomURL" : "http://www.xxx.jpg"
}
- . Nota: è necessario un dispositivo o un simulatore che supporta 3DTouch, altrimenti non è possibile mostrare un costume
UNNotificationContentExtension
viewcontroller (In iOS10 Beta1, non funziona. Ma ora questo lavoro senza tocco 3d)
E ... se si vuole solo mostrare un'immagine su una notifica push visualizzata sullo schermo di blocco, è necessario aggiungere 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)
Per ulteriori dettagli funzione, Demo
È possibile guardare i video degli sviluppatori di WWDC. Sta spiegando alla lezione "Rich Notifications". –