2016-07-23 8 views
1

Die CloudKit CKContainer requestApplicationPermission() -Methode zeigt eine Warnung an, die den Benutzer nur auf ONCE basierend auf der Dokumentation nach seiner Entdeckbarkeitsberechtigung fragt, und alle zukünftigen Aufrufe dieser Methode zeigen die Warnung nicht mehr an.Wie kann man den Benutzer nach der Erlangung der Erreichbarkeit erneut fragen, nachdem er das erste Mal abgelehnt hat?

Von Dokumentation: CKContainer.requestApplicationPermission() „Das erste Mal, wenn Sie eine Berechtigung für jede der Benutzer Geräte anfordern, wird der Benutzer aufgefordert, die Anforderung zu gewähren oder zu verweigern Sobald der Benutzer gewährt oder verweigert eine Genehmigung, nachfolgende Anforderungen für das gleiche. Erlaubnis (auf dem gleichen oder separaten Geräten) den Benutzer nicht erneut auffordern. "

Was passiert also, wenn der Benutzer seine Meinung ändert und ich möchte, dass meine Anwendung den Benutzer fragt, ob er seine Meinung geändert hat und die Warnung erneut anzeigt? Wie kann das passieren? Es muss einen Weg geben, aber ich kann keine Dokumentation darüber finden.

+3

Es gibt keine Möglichkeit, Sie haben den Benutzer zu sagen, um ihre Einstellungen zu ändern. – jonrsharpe

+0

Hallo Jon, also, wenn meine Anwendung den Benutzer bittet, ihre Einstellungen zu ändern, wie können sie es tun? Nicht sicher, wenn Sie sagen, dass sie zu den iphone Einstellungen gehen und es manuell tun können? Könnten Sie das näher ausführen? – malena

Antwort

-1

Prüfen Sie zunächst, ob der Benutzer vorher die Erlaubnis verweigert:

CKContainer.statusForApplicationPermission() 

Wenn der Status in der completionHandler zurück CKApplicationPermissionStatus.Denied ist, zeigt ein UIAlertController gefragt werden, ob der Benutzer es in Einstellungen aktivieren will. ja

Wenn der Benutzer sagt, können Sie Ihre App-Einstellungen Seite aussehen:

if let settingsURL = NSURL(string: UIApplicationOpenSettingsURLString) { 
    UIApplication.sharedApplication().openURL(settingsURL) 
} 
+0

Wenn Sie CloudKit verwenden (insbesondere den Entwicklungscontainer), wird die Erreichbarkeitsberechtigung in CloudKit beibehalten. Momentan gibt es keine Möglichkeit, dies von iOS zurückzusetzen. Sie müssen Ihre Entwicklungsumgebung zurücksetzen und alle Daten löschen. Wenn die App das nächste Mal ausgeführt wird, wird der Benutzer dazu aufgefordert. Apple muss das wirklich angehen und diese Antwort vom Benutzer in iOS aktualisieren lassen. – Wizkid

Verwandte Themen