Закрыть запрос геолокации после тайм-аута - PullRequest
2 голосов
/ 20 января 2020

Есть ли способ, которым я могу автоматически закрыть подсказку о геолокации (скажем, через 5 секунд)?

Ниже моя функция:

setCurrentPosition() {


const geoOptions = {
  enableHighAccuracy: false,
  timeout: 2000, // Wait 2 seconds
  maximumAge: 2000   //  Valid for 2 seconds
};

if ('geolocation' in navigator) {
  navigator.geolocation.getCurrentPosition((position) => {
    this.findAddressByCoordinates(position.coords.latitude, position.coords.longitude);
  }, (positionError => {
    console.log('error');
    console.log(positionError);
  }), geoOptions );


  if (this.currentMapData === undefined) {
    this.isComponentsValid.emit(false);
  } else {
    this.isComponentsValid.emit(true);
  }

}}

1 Ответ

1 голос
/ 20 января 2020

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

Одна хитрость заключается в использовании мягкой подсказки вместо жесткой подсказки, что в основном означает, что вы создадите свое собственное похожее всплывающее окно, чтобы вы могли контролировать это всплывающее окно в соответствии с вашими предпочтениями (скрыть это через 5 секунд). Как только пользователь согласится поделиться своим местоположением в вашем пользовательском всплывающем окне, вы можете показать реальное chrome всплывающее окно.

Для получения дополнительной информации прочитайте эту удивительную статью об UxCollective - https://uxdesign.cc/ask-for-push-notification-opt-in-properly-you-have-only-one-chance-64d66fac618e

...