mapkit-ios-demo icon indicating copy to clipboard operation
mapkit-ios-demo copied to clipboard

Не вызываются методы делегата LocationManager

Open IvanBogdantsev opened this issue 1 year ago • 9 comments

Добрый день, Не могу получить апдейты геолокации SDK 4.4.0 lite iOS 16 M1

final class MapViewController: UIViewController {

private let mapView = MapView()
private let locationManager: YMKLocationManager
private let viewModel: MapViewModelProtocol
private let disposeBag = DisposeBag()

init(viewModel: MapViewModel) {
    self.viewModel = viewModel
    locationManager = YMKMapKit.sharedInstance().createLocationManager()
    super.init(nibName: nil, bundle: nil)
    locationManager.subscribeForLocationUpdates(withDesiredAccuracy: 5,
                                                minTime: 5,
                                                minDistance: 5,
                                                allowUseInBackground: true,
                                                filteringMode: .off,
                                                locationListener: self)
}

required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

override func loadView() {
    view = mapView
}

override func viewDidLoad() {
    super.viewDidLoad()
    addTargets()
    bindViewModel()
    
}

private func addTargets() {}

private func bindViewModel() {}

}

extension MapViewController { /* @objc private func emailTextFieldChanged(_ textField: UITextField) { viewModel.inputs.emailChanged(textField.text) } */ }

extension MapViewController: YMKLocationDelegate { func onLocationUpdated(with location: YMKLocation) { print(location.absoluteTimestamp) }

func onLocationStatusUpdated(with status: YMKLocationStatus) {}

}

IvanBogdantsev avatar Sep 25 '23 14:09 IvanBogdantsev

Важное дополнение: subscribeForSingleUpdate работает

IvanBogdantsev avatar Sep 25 '23 17:09 IvanBogdantsev

Посмотрите, пожалуйста, статус в onLocationStatusUpdated. Возможно, что нет геолокации или разрешения на её использование.

YandexMapKit avatar Sep 26 '23 13:09 YandexMapKit

Все доступы есть. Еще раз уточню: subscribeForSingleUpdate работает

IvanBogdantsev avatar Sep 26 '23 14:09 IvanBogdantsev

Да и еще: onLocationStatusUpdated не работает также. Ни один метод делегата не работает

IvanBogdantsev avatar Sep 26 '23 14:09 IvanBogdantsev

@YandexMapKit ау!

IvanBogdantsev avatar Sep 27 '23 14:09 IvanBogdantsev

Проверили аналогичный код у нас. Работает исправно. Пожалуйста, приложите не выдержку, а полный минимальный пример проекта, который можно запустить и в котором проблема воспроизводится.

Вы можете выложить его проектом на GitHub, прикрепить к переписке в архиве или загрузить на Яндекс Диск и указать ссылку.

YandexMapKit avatar Oct 11 '23 10:10 YandexMapKit

Тоже не работает. iOS 16, iOS 17.

SuleymanovKamil avatar Nov 30 '23 07:11 SuleymanovKamil

Пожалуйста, отправьте пример проекта. Вы можете выложить его на GitHub, прикрепить к переписке архив или загрузить на Яндекс Диск и указать ссылку. Это поможет нам разобраться в ситуации.

YandexMapKit avatar Nov 30 '23 09:11 YandexMapKit

Для обновления локации при allowUseInBackground: true, нужно добавить capability background modes и поставить галочку на location update, либо передать false, если обновление в бэкграунде не нужно

SuleymanovKamil avatar Dec 05 '23 18:12 SuleymanovKamil