2012-04-05 3 views
2

Meine App-Register für die Meldungen wie folgt aus:Wie programmierst du die ios-Benachrichtigungseinstellungen?

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert]; 

aber wenn ich manuell auf die Benachrichtigungseinstellungen gehen, deaktivieren Sie alles (Notification Center, Alarm, Ton, Abzeichen), dann deinstallieren und die App neu installieren (oder einfach nur neu installieren ohne zuerst zu deinstallieren), mein iPhone behält die alten Einstellungen bei. Wie kann ich erzwingen, diese Einstellungen bei der Neuinstallation zu reaktivieren?

Antwort

15

Sie können nicht. In iOS 5.0 gab es eine nicht dokumentierte Funktion zum Öffnen der Benachrichtigungseinstellungsseite (oder einer Einstellungsseite) aus Ihrer Anwendung über ein URL-Schema. Dann könnten Sie den Benutzer bitten, die Benachrichtigungen zu aktivieren. Aber es wurde in 5.1 entfernt und würde wahrscheinlich sowieso nicht von Apple akzeptiert werden.

registerForRemoteNotificationTypes fragt der Benutzer, ob er Benachrichtigungen von Ihrer Anwendung nur die erste Mal akzeptieren möchten, nennen Sie es. Wenn der Benutzer später die Benachrichtigungseinstellungen ändert, wird er nicht mehr danach gefragt. Sie können überprüfen, ob Benachrichtigungen für Ihre Anwendung mit enabledRemoteNotificationTypes aktiviert sind und den Benutzer selbst warnen, wenn Sie möchten, aber der Benutzer muss manuell zu den Einstellungen gehen und sie erneut aktivieren. Sie können es nicht mehr von Ihrer Anwendung aus tun.

UPDATE ab iOS 8.0

Von iOS 8.0 Apple die Möglichkeit zurück, die Systemeinstellungen Seite Ihrer App zu öffnen:

NSURL* settingsURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
[[UIApplication sharedApplication] openURL:settingsURL]; 
+0

Also was ist registerForRemoteNotificationTypes: soll das tun? – Alexis

+0

Ich habe diese Information zu der Antwort hinzugefügt. – MrTJ

+0

und dann, wenn ich die App deinstalliere und neu installiere, wird diese Einstellung trotzdem beibehalten? Gibt es eine Möglichkeit, es zurückzusetzen? (außer das Zurücksetzen aller Einstellungen im Reset-Menü) – Alexis

1

Sie benötigen Push-Benachrichtigung permissions.Apple ein liefern zurücksetzen Möglichkeit zum Zurücksetzen der Berechtigungen -

Zurücksetzen der Push-Benachrichtigungen Berechtigungen Warnung auf iOS

Zum ersten Mal registriert eine Push-fähige Anwendungen für Push-Benachrichtigungen. iOS fragt den Benutzer, ob er Remote-Benachrichtigungen für diese bestimmte App erhalten möchte. Sobald der Benutzer auf diese Warnung geantwortet hat, wird er nicht immer wieder angezeigt, es sei denn, das Gerät wird wiederhergestellt oder die App wurde mindestens einen Tag lang deinstalliert.

Wenn Sie einen erstmaligen Lauf Ihrer App simulieren möchten, können Sie die App für einen Tag deinstalliert lassen. Sie können die letztere erreichen, ohne tatsächlich mit dem folgenden Schritten einen Tag zu warten:

1.Delete your app from the device. 
2.Turn the device off completely and turn it back on. 
3.Go to Settings > General > Date & Time and set the date ahead a day or more. 
4.Turn the device off completely again and turn it back on. 

Weitere Informationen finden Sie unter: https://developer.apple.com/library/ios/technotes/tn2265/_index.html

0

Versuchen Sie Ihr Gerät Datum auf 1 oder 2 Tage nach aktuellem Datum zu ändern. Manchmal wird es im Schlüsselbund des Geräts gespeichert und für 1 oder 2 Tage gespeichert. Es funktionierte für mich im Falle von Kalender- und Standortberechtigungen.