'Ask geolocation permission

I'm trying to get user's geolocation in development environment. I believe I'm fulfilling every requirements, though I still don't see any prompt asking for my position.

Here's what I'm using:

  • navigator.geolocation

The Geolocation API is accessed via a call to navigator.geolocation; this will cause the user's browser to ask them for permission to access their location data.

  • ngrok to have a SSL tunnel

Secure context: This feature [Geolocation API] is available only in secure contexts (HTTPS), in some or all supporting browsers.

  • Firefox 99.0.1 (able to be located on other websites, no domain-specific rules)

PermissionState is always prompt, which mean a prompt is currently asking for the permission right ?

Am I missing something, or is there specific requirements when asking for localhost geolocation ?



Solution 1:[1]

Somehow I'd to call navigator.geolocation.getCurrentPosition(callback) in order to have a prompt displayed.

If it can help anyone, here's my test code:

// inside a Stimulus controller

connect() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(this.showPosition)
  } else {
    // I believe it may also mean geolocation isn't supported
    alert('Geolocation denied') 
  }
}

showPosition(position) {
  alert(`${position.coords.longitude} - ${position.coords.latitude}`)
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Sumak