navigator.geolocation.getCurrentPosition doesn't work on android google chrome

后端 未结 7 1869
醉酒成梦
醉酒成梦 2021-01-01 10:55

This code:

navigator.geolocation.getCurrentPosition(
                    function(position) {
                        alert(position.coords.latitude, positio         


        
相关标签:
7条回答
  • 2021-01-01 11:07

    It was working for me for every simulator but not for android devices

    what worked for me was

    navigator.geolocation.getCurrentPosition(
                    (position) => {
                        console.log(position);
                    },
                    (error) => console.log(new Date(), error),
                    { enableHighAccuracy: false, timeout: 5000},
                );
    

    means instead of three argument I used only two means

    { enableHighAccuracy: false, timeout: 5000}

    0 讨论(0)
  • 2021-01-01 11:13

    After many hours of seeking solution for error3, i only can reboot my phone, and geolocation starts work as usually. So bad...

    0 讨论(0)
  • 2021-01-01 11:15

    Just finished testing a bunch of mobile devices and the Javascript Geolocation. I used the example code from Google in order to make sure that the problem is not in my own code.

    Chrome for Android 4.4 does not seem to work with GPS-only location services and neither does the 2.3 stock browser. They both need "High accuracy" - the use of wireless and 3G/4G networks.

    The funny thing is that Firefox for Android works without any problems GPS-only. Only the stock Android browsers (Chrome + Mobile Safari) fail with GPS-only location settings.

    And the rest of the gang - Lumia WP8 with GPS, Windows and Linux (both with ADSL) worked perfectly with any location settings.

    0 讨论(0)
  • 2021-01-01 11:16

    Well, I ran into this problem yesterday and the issue was that the Geolocation API can only be used over HTTPS. It will work on http://localhost but for other devices, you need to be on a secure connection.

    Hope it helps!

    0 讨论(0)
  • 2021-01-01 11:17

    You can try this. It seems to work on my device (Samsung Galaxy Nexus running Chrome 27.0.1453.90 on Wi-Fi (no data connection, no GPS on))

    navigator.geolocation.getCurrentPosition(
        function(position) {
             alert("Lat: " + position.coords.latitude + "\nLon: " + position.coords.longitude);
        },
        function(error){
             alert(error.message);
        }, {
             enableHighAccuracy: true
                  ,timeout : 5000
        }
    );
    

    The problem is that alert only takes strings (in it's original form) however you are passing 2 doubles. Modify the alert box for example to alert('Hey', 'Hello'); and the output will be only Hey. Change the , to + and you'll get the concatenated strings HeyHello. You can't use a + sign inside the alert as the equation will be first executed and then displayed.

    Hope this makes it clear.

    0 讨论(0)
  • 2021-01-01 11:21

    just add

    "geolocation",
    "location"

    under permissions. Worked for me. :-)

    0 讨论(0)
提交回复
热议问题