2016-06-12 12 views
10

Ich versuche, den Standort des Benutzers in einer Today-Erweiterung zu bekommen, und ich stoße auf eine Sackgasse.Wie verwende ich CLLocationManager in einer OS X Today Extension?

Wenn Sie in einer OS X-App locationManager.startUpdatingLocation() anrufen, wird ein Dialogfeld angezeigt, in dem Sie gefragt werden, ob die App Ihren Standort verwenden soll. In der Heute-Ansicht wird nach dem Aufruf dieser Methode jedoch überhaupt nichts angezeigt, und mein Stellvertreter wird nicht für didUpdateLocations oder für didFailWithError aufgerufen. CLLocationManager.authorizationStatus() gibt NotDetermined zurück. Ich habe mir die Apples Dokumentation über Today Extensions angesehen und sehe nicht viel über Berechtigungen oder über den Standort des Benutzers.

Wie soll der Standort des Benutzers in einer OS X Today-Erweiterung abgerufen werden?

Bearbeiten: Eine Sache zu beachten ist, dass CLLocationManager.locationServicesEnabled()true auf meiner OS X App und false auf meiner Today Extension zurückgibt. Was bedeutet das und wie kann ich das ändern?

Antwort

4

OS X Heute Erweiterungen verwenden standardmäßig eine App Sandbox und Sie müssen die richtigen Kontrollkästchen aktivieren, damit die Today Extension beispielsweise den Standort des Benutzers ermitteln und Netzwerkanrufe tätigen kann.

Gehen Sie zu Ihrem Projekteinstellungen in Xcode, wählen Sie Ihr OS X Heute Erweiterung Ziel, klicken Sie auf die Capabilities Registerkarte, erweitern Sie den App Sandbox Abschnitt, und die Kontrollkästchen für die Funktionen, die Sie (in meinem Fall wollen , Standort und ausgehende Netzwerkverbindungen).