Comment gérer UserNotifications Action B. iOS 10
Ainsi, je peux planifier des notifications comme suit;
J'ai demandé la permission de
, Et les notifications sont affichées normalement avec ma représentation de l'utilisateur à l'aide de l'expansion des notifications.
J'ai ajouté de notification à
pour les notifications de catégorie; Ils apparaissent aussi.
J'ai la même catégorie installée dans le fichier d'expansion de notification.
. Et en extension de la notification, j'ai ci-après modifier le texte lorsque l'utilisateur clique sur l'action.
Cependant, le texte ne change pas et aucune des déclarations n'est appelée;
DANS appDelegate J'ai ce qui suit;
Aucune de ces fonctions ne sont vraiment appelées
. Je ne suis pas sûr que le problème de mise à jour de l'expansion est lié au délégué de l'application. Je ne pense pas que j'ai regardé la vidéo Apple WWDC, ainsi que pour d'autres manuels et regardé le document API Et je ne peux pas comprendre;
Pourquoi les notifications d'expansion de l'étiquette de texte ne sont pas mises à jour ?
Pourquoi fonctionne B. appDelegate ne sont pas appelés ?
Comment puis-je utiliser le contenu de la notification dans le délégué de l'application?
Effectuer une action ?
PS: J'ai passé ces dernières semaines, explorer et essayer de comprendre cela, il semblait assez simple et je ne suis pas sûr de manquer. Je sais que non seulement j'ai ces problèmes.
//iOS 10 Notification
if #available/iOS 10.0, */ {
var displayDate: String {
let dateFormatter = DateFormatter//
dateFormatter.dateStyle = DateFormatter.Style.full
return dateFormatter.string/from: datePicker.date as Date/
}
let notif = UNMutableNotificationContent//
notif.title = "I am a Reminder"
notif.subtitle = "\/displayDate/"
notif.body = "Here's the body of the notification"
notif.sound = UNNotificationSound.default//
notif.categoryIdentifier = "reminderNotification"
let today = NSDate//
let interval = datePicker.date.timeIntervalSince/today as Date/
let notifTrigger = UNTimeIntervalNotificationTrigger/timeInterval: interval, repeats: false/
let request = UNNotificationRequest/identifier: "reminderNotif", content: notif, trigger: notifTrigger/
UNUserNotificationCenter.current//.add/request, withCompletionHandler: { error in
if error != nil {
print/error/
// completion/Success: false/
} else {
//completion/Sucess: true/
}
}/
}
J'ai demandé la permission de
appDelegate
, Et les notifications sont affichées normalement avec ma représentation de l'utilisateur à l'aide de l'expansion des notifications.
J'ai ajouté de notification à
appDelegate
pour les notifications de catégorie; Ils apparaissent aussi.
//Notifications Actions
private func configureUserNotifications// {
if #available/iOS 10.0, */ {
let tomorrowAction = UNNotificationAction/identifier: "tomorrowReminder", title: "Remind Me Tomorrow", options: []/
let dismissAction = UNNotificationAction/identifier: "dismissReminder", title: "Dismiss", options: []/
let category = UNNotificationCategory/identifier: "reminderNotification", actions: [tomorrowAction, dismissAction], intentIdentifiers: [], options: [.customDismissAction]/
UNUserNotificationCenter.current//.setNotificationCategories/[category]/
} else {
// Fallback on earlier versions
}
}
J'ai la même catégorie installée dans le fichier d'expansion de notification.
.plist
. Et en extension de la notification, j'ai ci-après modifier le texte lorsque l'utilisateur clique sur l'action.
//Handle Notification Actions And Update Notification Window
private func didReceive/_ response: UNNotificationResponse, completionHandler done: /UNNotificationContentExtensionResponseOption/ -> Void/ {
if response.actionIdentifier == "tomorrowReminder" {
print/"Tomrrow Button Pressed"/
subLabel.text = "Reminder For Tomorrow"
subLabel.textColor = UIColor.blue
done/.dismissAndForwardAction/
}
if response.actionIdentifier == "dismissReminder" {
print/"Dismiss Button Pressed"/
done/.dismiss/
} else {
print/"Else response"/
done/.dismissAndForwardAction/
}
}
Cependant, le texte ne change pas et aucune des déclarations n'est appelée;
DANS appDelegate J'ai ce qui suit;
func application/_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil/ -> Bool {
if #available/iOS 10.0, */ {
UNUserNotificationCenter.current//.delegate = self
configureUserNotifications//
}
}
extension AppDelegate: UNUserNotificationCenterDelegate {
@available/iOS 10.0, */
private func userNotificationCenter/_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: /UNNotificationPresentationOptions/ -> Void/ {
completionHandler/[.alert, .sound]/
}
@available/iOS 10.0, */
private func userNotificationCenter/_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: // -> Void/ {
print/"Recieved Action For \/response.actionIdentifier/"/
if response.actionIdentifier == "tomorrowReminder" {
print/"Tomorrow Reminder"/
//Set new reminder for tomorrow using the notification content title
completionHandler//
}
if response.actionIdentifier == "dismissReminder" {
print/"Dismiss Reminder..."/
completionHandler//
}
}
}
Aucune de ces fonctions ne sont vraiment appelées
appDelegate
. Je ne suis pas sûr que le problème de mise à jour de l'expansion est lié au délégué de l'application. Je ne pense pas que j'ai regardé la vidéo Apple WWDC, ainsi que pour d'autres manuels et regardé le document API Et je ne peux pas comprendre;
Pourquoi les notifications d'expansion de l'étiquette de texte ne sont pas mises à jour ?
Pourquoi fonctionne B. appDelegate ne sont pas appelés ?
Comment puis-je utiliser le contenu de la notification dans le délégué de l'application?
Effectuer une action ?
PS: J'ai passé ces dernières semaines, explorer et essayer de comprendre cela, il semblait assez simple et je ne suis pas sûr de manquer. Je sais que non seulement j'ai ces problèmes.
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
1 réponses
Charles
Confirmation de:
RÈGLE SIMPLE:
Effacer
, Ajouter
.
Vous avez peut-être reçu des offres incorrectes de Xcode, Mais en les faisant
, Objective-C Les points d'entrée ne sont pas générés. iOS runtime Les usages Objective-C Le sélecteur à l'intérieur de lui-même, il ne peut donc pas trouver vos méthodes, ils ne sont donc pas exécutés.