Umgang mit UserNotifications Aktionen in iOS 10

8

So kann ich Benachrichtigungen wie folgt planen;

%Vor%

Ich habe in appDelegate nach Berechtigungen gefragt, und die Benachrichtigungen erscheinen in meiner benutzerdefinierten Ansicht mit der Benachrichtigungserweiterung einwandfrei.

Ich habe Benachrichtigungsaktionen in appDelegate für die Benachrichtigungskategorie hinzugefügt. diese erscheinen auch.

%Vor%

Ich habe dieselbe Kategorie in der Benachrichtigungserweiterung .plist -Datei festgelegt. Und in der Benachrichtigungserweiterung habe ich die folgenden, um den Text zu ändern, wenn der Benutzer auf eine Aktion tippt.

%Vor%

Der Text ändert sich jedoch nicht und keine der Anweisungen wird aufgerufen.

Über in der AppDelegate habe ich folgendes:

%Vor%

Keine dieser Funktionen wird tatsächlich auch in appDelegate aufgerufen. Ich bin mir nicht sicher, ob das Problem bei der Aktualisierung der Erweiterungsansicht mit dem Anwendungsdelegaten zusammenhängt. Ich denke nicht, ich habe Apples WWDC-Video sowie andere Tutorials verfolgt und die Dokument-API betrachtet und kann nicht herausfinden;

  • Warum werden die Textlabels der Benachrichtigungserweiterung nicht aktualisiert?
  • Warum werden die Funktionen in appDelegate nicht aufgerufen?
  • Wie kann ich den Benachrichtigungsinhalt im App-Delegaten verwenden? für die Aktion?
PS: Ich habe die letzten Wochen damit verbracht, das herauszufinden und zu versuchen, das herauszufinden, es schien ziemlich geradlinig und ich bin mir nicht sicher, was ich vermisse. Ich weiß, dass ich nicht der Einzige bin, der diese Probleme hat.

    
A.Roe 08.09.2016, 15:58
quelle

1 Antwort

4

Ich habe den ganzen Code von Ihnen nicht überprüft, aber zumindest müssen diese Funktions-Header wie folgt geändert werden:

%Vor%

Einfache Regel: Entfernen Sie private , fügen Sie @escaping hinzu.

Sie haben möglicherweise falsche Vorschläge von Xcode erhalten, aber wenn Sie private setzen, werden keine Objective-C-Einstiegspunkte generiert. iOS-Laufzeit verwendet Objective-C-Selektoren intern, sodass es Ihre Methoden nicht finden kann und daher nicht ausgeführt wird.

    
OOPer 10.09.2016, 13:13
quelle