5

Mit CLAuthorizationStatus kann ich genau wissen, ob der Benutzer die App-Berechtigungen verweigert (kCLAuthorizationStatusDenied) oder wenn der Status nicht festgelegt ist (kCLAuthorizationStatusNotDetermined).iOS: Gibt es eine Möglichkeit zu erfahren, ob der Benutzer Benachrichtigungen deaktiviert hat?

... Also gibt es etwas Ähnliches für Benachrichtigungsdienste? Ich kann scheinbar nichts finden und es scheint keine Möglichkeit zu geben, zwischen einem Benutzer, der die Berechtigungen verweigert hat, und einem Benutzer, dem das Berechtigungs-Popup noch nicht angezeigt wurde, zu unterscheiden.

+2

Haben das gleiche Problem. '[[UIApplication sharedApplication] currentUserNotificationSettings]' gibt 0 oder keine zurück, wenn die App neu installiert wird. Kann nicht zwischen "Noch nicht angefordert" oder "Abgelehnt" unterscheiden – xta

Antwort

-2
UIUserNotificationSettings *currentSettings = [[UIApplication sharedApplication] currentUserNotificationSettings]; 

Dieser Code enthält die aktuellsten Einstellungen für Benachrichtigungen.

+0

Dieser Code kann nicht zwischen dem Fall unterscheiden, wenn der Benutzer noch nicht aufgefordert wurde, und wenn er dazu aufgefordert und abgelehnt wurde. So beantwortet es die Frage nicht. – Codo

-1
if ([[[UIDevice currentDevice]systemVersion]floatValue] >= 8.0) { 
    UIUserNotificationSettings *current = [[UIApplication sharedApplication]currentUserNotificationSettings]; 
    if (current.types != UIUserNotificationTypeNone){ 
     NSLog(@"Notifications Enabled ios 8"); 
    } else { 
     NSLog(@"Notifications not Enabled ios 8"); 
    } 

} else { 
    UIRemoteNotificationType types = [[UIApplication sharedApplication]enabledRemoteNotificationTypes]; 
    if (types != UIRemoteNotificationTypeNone) 
    { 
     NSLog(@"Notifications Enabled"); 
    } 
    else 
    { 
     NSLog(@"Notifications not Enabled"); 
    } 
} 
+0

Dieser Code kann nicht zwischen dem Fall unterscheiden, wenn der Benutzer noch nicht aufgefordert wurde, und wenn er aufgefordert und abgelehnt wurde. So beantwortet es die Frage nicht. – Codo