iOS Registrierung für Push-Benachrichtigungen in der Anwendung

7

Q1. Muss ich dies zu Beginn meiner App tun? Oder kann ich die Eingabeaufforderung an jeder Stelle in meiner App zulassen / nicht zulassen?

Q2. Gibt es eine Möglichkeit herauszufinden, ob der Benutzer Ja / Nein geklickt hat? (Rückruf?)

Q3. Wenn der Benutzer bereits Nein geklickt hat (in einer vorherigen Sitzung), wird meine Eingabeaufforderung tatsächlich ausgelöst? Oder muss ich dem Benutzer sagen, dass er zu seinen Telefoneinstellungen gehen und sie dort aktivieren soll?

Grund ist, dass ich eine App habe, die einen Abschnitt darin hat, der "Benachrichtigungen" genannt wird, wodurch sie aktivieren / deaktivieren können, um Benachrichtigungen über bestimmte Dinge zu erhalten, also möchte ich sie nur dazu auffordern, etc. zu aktivieren, wenn sie in diesem Abschnitt sind nicht am Anfang der App.

    
Baconbeastnz 28.10.2012, 22:36
quelle

4 Antworten

21

A1: Nein, es muss nicht am Anfang der App stehen. Sie können registerForRemoteNotificationTypes von überall im Code aufrufen.

%Vor%

Sie müssen die folgenden delegierten Methoden (in delegate) behandeln, die bei erfolgreicher / fehlgeschlagener Registrierung für Push-Benachrichtigungen aufgerufen werden.

%Vor%

A2: Ja, du kannst. Es gibt zwei mögliche Szenarien. Wenn Ihre Anwendung nicht ausgeführt wird, behandeln Sie die Push-Benachrichtigung in didFinishLaunchingWithOptions. In diesem Fall, wenn der Benutzer in der Nachrichtenbenachrichtigung "Öffnen" ausgewählt hat oder auf Banner geklickt hat (abhängig von den Benutzereinstellungen), wird Ihre Anwendung automatisch gestartet und Sie können die in Push-Benachrichtigungen übergebenen Benutzerparameter verarbeiten.

%Vor%

Wenn Ihre Anwendung bereits ausgeführt wird, wird die Push-Benachrichtigung an die application:didReceiveRemoteNotification: -Delegatenmethode übermittelt, wo Sie UIAlertView einfach mit der Nachricht in der Push-Benachrichtigung präsentieren und die alertView-Delegierten OK / Abbrechen-Schaltfläche auf die übliche Weise bearbeiten können.

%Vor%

A3: Wenn der Benutzer sich geweigert hat, Push-Benachrichtigungen von Ihrer App zu akzeptieren, dann didFailToRegisterForRemoteNotificationsWithError und Sie erhalten daher nicht das DevToken des Benutzers, das auf Ihrem Server sein muss, um Push-Benachrichtigungen an diesen Benutzer zu senden. Wenn der Benutzer dies zunächst akzeptiert, später jedoch die Einstellungen ändert, um die Push-Benachrichtigung zu deaktivieren, sendet der Apple-Server die Push-Benachrichtigung nicht an diesen Benutzer. In diesem Fall wird die UDID dieses Benutzers im Feedback-Service angezeigt. Im Idealfall sollte Ihr Server die UDID dieses Benutzers aus der Datenbank entfernen und keine weiteren Push-Benachrichtigungen an diese Benutzer senden. Wenn Sie weiterhin ungültige Push-Benachrichtigungen senden, löscht der Apple-Server die Verbindung möglicherweise unbeaufsichtigt und Sie können keine Push-Benachrichtigungen senden.

Siehe Apple Push Notification Dokumentation für Details zur Implementierung.

    
applefreak 28.10.2012, 23:12
quelle
5
  • Q1 Es ist nicht notwendig, Push-Register beim App-Start zu setzen, aber einige tun es stecke es irgendwie in application: didFinishLaunchingWithOptions: Stellen Sie sicher, dass das Geräte-Token erfolgreich auf dem Server des Entwicklers gespeichert wurde.
  • Q2 Was ist das "Ja / Nein" für hier? Wenn Sie das "ja / nein" auf "wenn" meinen Push-Benachrichtigung erhalten ". Wenn der Benutzer dann auf" Ja "geklickt hat, delegate application: didRegisterForRemoteNotificationsWithDeviceToken wird ausgelöst, Sonst nicht.
  • Q3 Wenn der Benutzer auf "nein" klickt, um den Empfang von Push-Benachrichtigungen abzulehnen, dann Entweder kannst du ihn später daran erinnern, es in den Einstellungen zu aktivieren, oder hast eine Funktion, wie eine UISwitch-Sache, um Benutzern zu ermöglichen, auszulösen %Code% wieder.
BabyPanda 29.10.2012 01:38
quelle
5

Sie können das folgende Tutorial für swift ( Visit Link ) verwenden und folgenden einfachen Code verwenden für objective-c für Apple Push-Benachrichtigung.

%Vor%     
Mohammad Kamran Usmani 02.08.2016 13:29
quelle
0

Antwort für Frage: 2 in iOS 10.

In iOS: 10 ist ein Completion-Handler implementiert. Daher werden Sie sofort im Complete-Handler-Block benachrichtigt.

%Vor%     
Sujananth 09.09.2017 17:25
quelle