Расположение пользователей, заходящих на сайт через Geolocation и Javascript API, но ошибки нарушения - PullRequest
0 голосов
/ 08 апреля 2020

Попытка получить доступ к местоположениям пользователей, заходящих на веб-сайт, с помощью Google Geolocation и Javascript API. Но это дает мне ошибки нарушения.

THE HTML Файл

<script>    
  var map, infoWindow;
      function initMap() {
        map = new google.maps.Map(document.getElementById('map'), {
          center: {lat: -34.397, lng: 150.644},
          zoom: 6
        });
        infoWindow = new google.maps.InfoWindow;
    // Try HTML5 geolocation.
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(function(position) {
        var pos = {
          lat: position.coords.latitude,
          lng: position.coords.longitude
        };

        infoWindow.setPosition(pos);
        infoWindow.setContent('Location found.');
        infoWindow.open(map);
        map.setCenter(pos);
      }, function() {
        handleLocationError(true, infoWindow, map.getCenter());
      });
    } else {
      // Browser doesn't support Geolocation
      handleLocationError(false, infoWindow, map.getCenter());
    }

      }

      function handleLocationError(browserHasGeolocation, infoWindow, pos) {
        infoWindow.setPosition(pos);
        infoWindow.setContent(browserHasGeolocation ?
                              'Error: The Geolocation service failed.' :
                              'Error: Your browser doesn\'t support geolocation.');
        infoWindow.open(map);
      }
    </script>
    <script async defer
    src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&callback=initMap">
    </script>

EXPRESSJS

const express=require('express');
const path = require('path');
const app=express();
app.get('/*', (req, res) => {
res.sendFile(path.join(__dirname, './geo.html'));
})
const port =8081;
app.listen(port,()=>{
console.log(`App running on ${port}`);
})

На веб-странице запрашивается мое местоположение и затем выдает следующие предупреждения о нарушениях:

[Violation] Only request geolocation information in response to a user gesture.
initMap @ geo.html:20
(anonymous) @ js?key=AIzaSyCZoELufy8fp9Vg4jGAAwAtDz0f8UJuxzc&callback=initMap:142
(anonymous) @ js?key=AIzaSyCZoELufy8fp9Vg4jGAAwAtDz0f8UJuxzc&callback=initMap:142
util.js:45 [Violation] Added non-passive event listener to a scroll-blocking 'touchstart' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952
(anonymous) @ util.js:45
Nz @ util.js:45
_.zE @ util.js:134
LW @ onion.js:30
(anonymous) @ onion.js:35
util.js:45 [Violation] Added non-passive event listener to a scroll-blocking 'touchmove' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952

Вы можете помочь мне решить эту проблему

1 Ответ

0 голосов
/ 08 апреля 2020

Google рекомендует , чтобы вы не запрашивали местоположение пользователей при загрузке страницы :

Пользователи не доверяют или смущаются страницами, которые автоматически запрашивают свое местоположение на загрузка страницы. Вместо того, чтобы автоматически запрашивать местоположение пользователя при загрузке страницы, t ie запрос на жест пользователя, такой как нажатие кнопки «Найти магазины рядом со мной». Убедитесь, что жест четко и явно выражает необходимость определения местоположения пользователя.

Вы должны добавить кнопку, которая дает пользователю некоторую информацию о том, зачем вам сначала нужно местоположение, а затем спросить. Таким образом, пользователи знают, зачем вам это нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...