Mam aplikację z wyraźną interakcją użytkownika, która wykorzystuje bieżącą lokalizację użytkownika. Jeśli użytkownik odmówi dostępu do usług lokalizacyjnych, nadal chciałbym, aby użytkownicy korzystali z kolejnych ustawień, aby przejść do ustawień i ponownie włączyć usługi lokalizacyjne dla mojej aplikacji.Jak mogę zachęcić użytkownika do włączania usług lokalizacyjnych po tym, gdy użytkownik odmówił ich używania?
Zachowanie chcę jest, że z wbudowanej aplikacji Maps:
- ostrzeżenia lokalizacja resetu w Ustawienia> Ogólne> Wyzeruj> Położenie ostrzeżenia.
- Uruchom aplikację Mapy.
- Dotknij przycisku Aktualna lokalizacja w lewym dolnym rogu.
- Prośby o mapy z opcją "" Mapy "chcą używać bieżącej lokalizacji" | "Nie pozwól" | "Dopuszczać".
- Wybierz opcję "Nie zezwalaj".
- Ponownie dotknij przycisku Aktualna lokalizacja w lewym dolnym rogu.
- Wyświetlenie map z "Włącz usługi lokalizacyjne do zezwolenia" Mapy "w celu określenia Twojej lokalizacji" | "Ustawienia" | "Anuluj".
W moim app, te same podstawowe wyniki przepływu w moim CLLocationManagerDelegate -locationManager: didFailWithError: metoda miano z błędem kCLErrorDenied w końcowym etapie, a użytkownik nie ma możliwość, aby otworzyć ustawienia aplikacji w celu skorygowania to.
Mogę wyświetlić swój własny alert w odpowiedzi na błąd, ale nie będzie on miał możliwości uruchomienia aplikacji Ustawienia, takiej jak alert, który system operacyjny może zapewnić zgodnie z wbudowaną aplikacją Mapy.
Czy jest coś, czego brakuje mi w klasie CLLocationManager, która mogłaby dać mi takie zachowanie?
Teraz, po prostu wyświetli ostrzeżenie do użytkownika z prośbą, aby przejść do menu Ustawienia, aby ponownie ją włączyć. Bardzo chciałbym usłyszeć lepsze rozwiązanie. – donkim
Chciałbym również odpowiedzi na to, z pewnością jest lepszy sposób – conorgriffin
Znalazłem CoreLocation nie było zadowalające z tego powodu. Skończyłem z wykorzystaniem biblioteki Skyhook, która jest łatwa do zintegrowania i dobrze udokumentowana. Współrzędne wydają się być również bardziej precyzyjne. Jedyną wadą jest konieczność powiązania z aplikacją bloku o rozmiarze 1,5 MB. –