isRegisteredForRemoteNotifications gibt true zurück, obwohl ich es vollständig deaktiviert habe

8
%Vor%

Wenn ich zu den Einstellungen gehe, um die Benachrichtigungen vollständig zu deaktivieren und dann in die App zurückzukehren, druckt die App weiterhin true , erlaubt.

Ich kann nicht scheinen, dass es false auslöst, selbst nachdem eine App deinstalliert / neu installiert wurde.

    
TIMEX 22.04.2015, 04:23
quelle

3 Antworten

2

Gemäß der Apple-Dokumentation isRegisteredForRemoteNotifications gibt NO zurück, wenn die Registrierung nicht stattgefunden hat, fehlgeschlagen ist oder vom Benutzer abgelehnt wurde. YES wird zurückgegeben, wenn sich die App für Remote-Benachrichtigungen registriert und ein Geräte-Token erhalten hat. Also in Antwort auf Ihre Frage NEIN wird es nicht immer Nein zurückgeben, es wird auch ja zurückkommen, wenn eine App sich für Remote-Benachrichtigungen registriert hat und es Geräte-Token erhalten hat.

  

Zurück Wert YES, wenn die App für Remote-Benachrichtigungen registriert ist und   erhalten sein Gerät Token oder NO, wenn die Registrierung nicht aufgetreten ist, hat   fehlgeschlagen oder wurde vom Benutzer abgelehnt.

     

Diskussion Diese Methode spiegelt nur den erfolgreichen Abschluss der   Fernregistrierungsprozess, der beginnt, wenn Sie den   registerForRemoteNotifications-Methode. Diese Methode spiegelt nicht wider   ob Remote-Benachrichtigungen tatsächlich verfügbar sind   Verbindungsprobleme. Der von dieser Methode zurückgegebene Wert wird übernommen   Benutzereinstellungen für den Empfang von Remote-Benachrichtigungen berücksichtigen.

Der obige Punkt kehrt in das Apple-Dokument zurück.

----- EDITED ----------

Sie können die Berechtigungen Ihrer App mit

lesen %Vor%

Dann führen Sie eine beliebige Operation mit den verschiedenen Typen durch, um zu sehen, welche aktiviert sind. Sie können auch unregisterForRemoteNotifications aufrufen, um Benachrichtigungen zu deaktivieren.

----- Änderungen ------

  

- isRegisteredForRemoteNotifications

     

Gibt einen booleschen Wert zurück, der angibt, ob die App gerade registriert ist   für Remote-Benachrichtigungen.

     
    

Deklaration SWIFT func isRegisteredForRemoteNotifications() -> Bool

         

ZIEL-C      - (BOOL)isRegisteredForRemoteNotifications

  
     

Rückgabewert YES, wenn die App für Remote-Benachrichtigungen registriert ist und   erhalten sein Gerät Token oder NO, wenn die Registrierung nicht aufgetreten ist, hat   fehlgeschlagen oder wurde vom Benutzer abgelehnt.

     

Diskussion Diese Methode spiegelt nur den erfolgreichen Abschluss der   Fernregistrierungsprozess, der beginnt, wenn Sie den   registerForRemoteNotifications-Methode. Diese Methode spiegelt nicht wider   ob Remote-Benachrichtigungen tatsächlich verfügbar sind   Verbindungsprobleme. Der von dieser Methode zurückgegebene Wert wird übernommen   Benutzereinstellungen für den Empfang von Remote-Benachrichtigungen berücksichtigen.

    
Nimit Parekh 22.04.2015, 04:55
quelle
9

Ich habe eine Erweiterung für Swift 3 gemacht

%Vor%

Und dann benutze es

%Vor%     
zeiteisen 07.10.2016 10:06
quelle
4

Ich habe meine Notizen zur Push-Benachrichtigung in Ссылка

Szenarien

Dies sind die Szenarien, die Sie durchgehen können

isRegisteredForRemoteNotifications - UIApplication.shared.currentUserNotificationSettings

iOS 9.3.2 +

  • Es wurde kein Push-Anfrage-Dialog ausgelöst: false - none
  • Aktivieren Sie die Push-Funktion für die App nach einer Berechtigungsanfrage: true - alert, badge, sound
  • Deaktivieren Sie Push für app: true - none
  • Aktivieren Sie Push, aktivieren Sie nur alert: true - alert
  • Deinstallieren und erneut installieren (innerhalb von 24 Stunden): false - none
  • Verweigern Sie, wenn Sie nach einer Erlaubnisanfrage fragen: true - none
  • Wiederkehrbarer Push nach Ablehnung: true - alert, badge, sound

API

Ab iOS 8+ wurde die Push-Benachrichtigungs-API in registerForRemoteNotifications und registerUserNotificationSettings aufgeteilt.

Also, wenn Sie registerForRemoteNotifications

aufrufen
  • func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) heißt
  • UIApplication.shared.isRegisteredForRemoteNotifications gibt wahr
  • zurück

Dies bedeutet, dass die App das Push-Token erhalten hat und bereit ist, Push-Benachrichtigungen zu erhalten. Ob das Betriebssystem Push an Ihre App liefert, hängt von user notification settings ab, was der Benutzer in Settings

umschaltet

onmyway133 09.02.2017 14:27
quelle

Tags und Links