Загрузка данных в ветку из контроллера с помощью AJAX в Symfony 3.4

Запросить разрешение для служб местоположения, которые вы используете:

yourSharedLocationManager.requestWhenInUseAuthorization()

Если состояние в настоящее время не определено, предупреждение покажет запрос пользователю разрешить доступ. Если доступ запрещен, ваше приложение будет уведомлено в CLLocationManagerDelegate, так же, если разрешение будет отклонено в любой момент, вы будете обновлены здесь.

Для определения текущих разрешений необходимо проверить два отдельных состояния.

  • Если у пользователя есть общие службы определения местоположения или нет

CLLocationManager.locationServicesEnabled()

  • Если пользователь предоставил правильное разрешение для вашего приложения ..

CLLocationManager.authorizationStatus() == .authorizedWhenInUse

Вы можете добавить расширение - это удобная опция:

extension CLLocationManager {
static func authorizedToRequestLocation() -> Bool {
    return CLLocationManager.locationServicesEnabled() &&
        (CLLocationManager.authorizationStatus() == .authorizedAlways || CLLocationManager.authorizationStatus() == .authorizedWhenInUse)
}

}

Здесь он обращается, когда пользователь сначала запросил направления:

 private func requestUserLocation() {
    //when status is not determined this method runs to request location access
    locationManager.requestWhenInUseAuthorization()

    if CLLocationManager.authorizedToRequestLocation() {

        //have accuracy set to best for navigation - accuracy is not guaranteed it 'does it's best'
        locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation

        //find out current location, using this one time request location will start the location services and then stop once have the location within the desired accuracy -
        locationManager.requestLocation()
    } else {
        //show alert for no location permission
        showAlertNoLocation(locationError: .invalidPermissions)
    }
}

Вот делегат:

 func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {

    if !CLLocationManager.authorizedToRequestLocation() {
        showAlertNoLocation(locationError: .invalidPermissions)
    }
}
0
задан RSS 29 March 2019 в 07:32
поделиться

1 ответ

Добавить имя маршрута в контроллер @Route("/student/ajax", name="get-students")

Пример:

 /**
 * @Route("/student/ajax", name="get-students")
 */
  public function ajaxAction(Request $request) {          
    if ($request->isXmlHttpRequest() || $request->query->get('showJson') == 1) { 
        $jsonData = array(
            array(
                'name' => 'name1',
                'address' => 'addres1',
            ),
              array(
                'name' => 'name2',
                'address' => 'addres2',
            ),
        );

        return new JsonResponse($jsonData);
    } else {
        return $this->render('@reservation/Default/ajax.html.twig');
    }
}

Теперь в $.ajax отправить запрос на имя маршрута url: "{{ path('get-students') }}"

[111 ]

Вывод файла ветки:

Name    Address
name1   addres1
name2   addres2
0
ответ дан rescobar 29 March 2019 в 07:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: