Search code examples
javascriptw3c-geolocation

Is there a way to know if geolocation is enabled for the current domain?


The website I'm working on uses HTML5 geolocation api. It works fine, but I need to know if the feature has been authorized.
navigator.geolocation only tells if the feature is available. What I want to know is whether the user has enabled it already. Basically, I need to know if the browser will request permission to use the feature. Is it possible?


Solution

  • If the user does not allow your app to use the Geolocation API the methods getCurrentPosition and watchPosition will return an PositionError object via the error callback:

    void getCurrentPosition(successCallback,
                            errorCallback,
                            options);
    
    long watchPosition(successCallback,
                       errorCallback,
                       options);
    

    The PositionError looks like:

    PositionError {
        code;
        message;
    };
    

    where the possibles values of code are:

    PositionError.PERMISSION_DENIED = 1;
    PositionError.POSITION_UNAVAILABLE = 2;
    PositionError.TIMEOUT = 3;
    

    And more specific:

    • PERMISSION_DENIED (numeric value 1) The location acquisition process failed because the document does not have permission to use the Geolocation API.

    The documentation here.