HTML5地理位置 – 无法在iOS上一直运行

目前与HTML5地理位置工作,我已经在所有的Web浏览器上testing,它似乎工作。 但是,当我在iPad上testing地理定位时,它一直适用于iPad mini,但是当我将它放在较大的iPad(iPad 2)上时,该位置似乎并不一直工作。

我试图做这个networking端,这样的解决scheme可以移植到多个平台,而不仅仅是iOS。

编辑:

刚刚尝试过,它在Safari浏览器中工作,但它不适用于iOS应用程序。

有没有人有任何想法,为什么它不工作?

互联网:尝试Wi-Fi和尝试热点,也试图打开Wi-Fi无需连接任何人。

iOS版本: 8.3

位置应显示在这里:

$("#status").html(currentLat + " " + currentLng); 

码:

 <!DOCTYPE html> <html> <head> <script src="js/jquery-1.11.3.min.js"></script> <script> //example $(document).ready(function(){ setInterval(function(){ getLocation(function(position) { //do something cool with position currentLat = position.coords.latitude; currentLng = position.coords.longitude; $("#status").html(currentLat + " " + currentLng); }); }, 1000); }); var GPSTimeout = 10; //init global var NOTE: I noticed that 10 gives me the quickest result but play around with this number to your own liking //function to be called where you want the location with the callback(position) function getLocation(callback) { if(navigator.geolocation) { var clickedTime = (new Date()).getTime(); //get the current time GPSTimeout = 10; //reset the timeout just in case you call it more then once ensurePosition(callback, clickedTime); //call recursive function to get position } return true; } //recursive position function function ensurePosition(callback, timestamp) { if(GPSTimeout < 6000)//set at what point you want to just give up { //call the geolocation function navigator.geolocation.getCurrentPosition( function(position) //on success { //if the timestamp that is returned minus the time that was set when called is greater then 0 the position is up to date if(position.timestamp - timestamp >= 0) { GPSTimeout = 10; //reset timeout just in case callback(position); //call the callback function you created } else //the gps that was returned is not current and needs to be refreshed { GPSTimeout += GPSTimeout; //increase the timeout by itself n*2 ensurePosition(callback, timestamp); //call itself to refresh } }, function() //error: gps failed so we will try again { GPSTimeout += GPSTimeout; //increase the timeout by itself n*2 ensurePosition(callback, timestamp);//call itself to try again }, {maximumAge:0, timeout:GPSTimeout} ) } } </script> </head> <body> <div id="wrapper"> <!-- Page heading --> <h1>Geolocation</h1> <!-- Status --> <p>Finding your location: <span id="status">checking...</span></p> </body> </html> 

我以为你应该先得到位置的许可

添加NSLocationWhenInUseUsageDescriptionNSLocationAlwaysUsageDescriptionApp-Info.plist并给它一个string。

尝试以上,看看是否有帮助。

简单的没有计时器

 <!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> </head> <body> <BR><BR><BR><BR> <button onclick="getLocation()">get Location</button> <script> function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(alertPosition); } else { alert("Geolocation is not supported."); } } function alertPosition(position) { alert("Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude); } </script> </body> </html>