Wpis z mikrobloga

Mirki z #programowanie #ios #xamarin da się w iOS wykryć takie cudo, że użytkownik minimalizuje apkę, w ustawieniach jej zmienia uprawnienia lokacji (daje na "Never") i jak wróci do apki to wykryć taką zmianę? Rozwiązania z natywnego iOS tez wchodzą w grę. Korzystam z MVVMCrossa i mam plugin do lokacji, myślałem, że OnPermissionChanged watchera wykryje mi taką zmianę, w androidzie wykrywa jednak w iOS nie... #pytanie
  • 8
@kubsle: W Xamarinie nie wiem.
Ale da się to wykryć
Najprostszy pomysł bez przemyślenia
https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622997-applicationdidenterbackground
Wtedy w UserDefaultsach zapisać jaki jest aktualny stan uprawnień, a przy powrocie odczytac i sprawdzić
Musisz też pamiętać że przy iOS13 kwestie pytania o uprawnienia się zmieniły i najpierw zawsze jest zapytanie "tylko kiedy używam", a po przejściu do backgroundu i odpytania o lokalizacje, jest kolejny popUp o danie uprawnień zawsze
Tak samo "Tylko kiedy używam"
A czy przypadkiem nie jest tak, że odebranie uprawnień appce ubija ją? @Prism2772 sugeruje chyba dość sensowne podejście, chociaż pamietaj, że od iOS13 user moze przyznać jednorazowo uprawnienia do lokalizacji (co jest nierozróżnialne od tych stałych), więc zasadniczo ja jestem zwolennikiem pytania i sprawdzania permissionów przy każdej operacji która tego wymaga. @kubsle:
@matijas: Uprawienia do zbierania lokalizacji w tle =/= uprawnienia do działania w tle.
Możesz robić małe zadania, jak chociażby odświeżenie danych w tle, ale nie możesz korzystać z niczego, do czego potrzeba aktualnej lokalizacji.
Jest też delegat, na zmianę uprawnień, ale nie wiem czy on działa jak się zmienia w trakcie działania, czy także po za, bo nie sprawdzałem tego jeszcze dokładnie.
Ale potwierdzam, za każdym razem jak lokalizacja potrzebna, powinno
@Illidank: dzięki, zrobiłem to za pomocą will Enter foreground, tylko myśle jak zrobić to najbardziej zgodne z mvvm? Mam swój serwis lokacyjny i ściągać go za pomocą service locatora w willenterforeground
@kubsle: ten sam interfejs z metodami, oddzielne implementacje dla ios i androida w Setup/InitializeLastChance i przez IoCProvider wykonywać tą część w odpowiednich momentach?