Appcelerator iOS 12 Расположение

Будут ли внесены новые изменения в код для iOS 12, когда речь идет о службах определения местоположения, в отличие от iOS 11?

У меня есть следующий код, который отлично работает в iOS 11, но в iOS 12, несмотря на то, что он запрашивает подсказки всегда/когда используется, и я вижу значок GPS, я получаю неопределенность в своих e.coords.

var hasLocationPermission = Ti.Geolocation.hasLocationPermissions(Ti.Geolocation.AUTHORIZATION_ALWAYS);


    if (hasLocationPermission) {
    //this just calls the function, but it the e.coords comes back as undefined in iOS 12, fine in iOS 11

        getLocation();
    }

function getLocation() {
    Ti.Geolocation.addEventListener('location', function (e) {
        try {
            longitude = e.coords.longitude;
            latitude = e.coords.latitude;
        } catch (err) {
            console.log('err', err)
        }

    });
}

person Josh Lewis    schedule 04.01.2019    source источник


Ответы (1)


Обязательно включите ключ iOS 11+ NSLocationAlwaysAndWhenInUseUsageDescription в свой plist, который стал более важным в iOS 12, потому что в подсказке будет предложено использовать менее критичное разрешение «при использовании», если вы не включите указанный выше ключ. Кроме того, всегда сначала запрашивайте разрешение «при использовании», а затем обновляйте его до «всегда».

Подробнее см. в документах Ti.Geolocation.

person Hans Knöchel    schedule 13.01.2019