2015-05-01 13 views
5

Ben kullanıcının konumunu takip etmek ve izin istemek benim yük ilk yüklendiğinde bu kullanırken: Kullanıcı inkar ederseKullanıcı konum hizmetlerini reddettikten sonra izin istekleri yeniden ister misiniz?

locationManager.requestAlwaysAuthorization() 
locationManager.startUpdatingLocation() 

, ancak daha sonra benim app yapılandırma seçeneği etkinleştirerek kendi fikrini değiştirir, nasıl tekrar soruyorsun ? Örneğin, ben bunu etkinleştirdiğinizde bu yüzden, ben bunu yapmak için çalışıyorum, kullanıcının yerini tespit oto için bir anahtar vardır:

@IBAction func gpsChanged(sender: UISwitch) { 
    // Request permission for auto geolocation if applicable 
    if sender.on { 
     locationManager.requestAlwaysAuthorization() 
     locationManager.startUpdatingLocation() 
    } 
} 

Ama bu kod bir şey yapmak gibi görünmüyor. Uygulamanın kullanıcının yerini takip etmesine izin vermek istiyorsa kullanıcının tekrar sormasını umuyordum. Mümkün mü?

cevap

21

İşletim sistemi yalnızca kullanıcıyı bir kez uyarır. İzin almazlarsa, bu kadar. Ne ne yapabilir UIApplicationOpenSettingsURLStringUIApplication'un openURL: yöntemini geçirerek kullanıcıyı uygulamanızın Ayarlar bölümüne yönlendirir. Oradan diledikleri yerde konum hizmetlerini yeniden etkinleştirebilirler. Bu, izin için onları yakalama konusunda çok saldırgan olmamanız gerektiğini söyledi.

1

Sadece bir şansınız var. Kullanıcı, reddettikten sonra izinleri etkinleştirmek için, Ayarlar uygulamasından geçmelidir. CLLocationManager'da Konum Hizmetlerini Kullanmak için İzin İsteme konusuna bakın.