Ho creato uno script che mostra la posizione dell'utente utilizzando la libreria di geolocalizzazione e tutto funziona correttamente. Ho esportato questo script HTML 5 usando PhoneGap e posso vederlo in Impostazioni-> Servizi di localizzazione. La mia app è impostata su On. Quindi ho pensato che ogni volta che eseguivo la mia app non avrei ricevuto il prompt regolare ".... vorresti usare la tua posizione attuale?" con le opzioni Non consentire o Ok.Geolocalizzazione HTML 5 tramite telefonoGap
Non voglio che le persone facciano clic su Consenti ogni volta che aprono La mia app. C'è un motivo per cui l'app non utilizza l'impostazione da Servizi-> Impostazioni posizione? Di seguito è riportato lo script semplice:
<!DOCTYPE html>
<html>
<head>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel="apple-touch-icon-precomposed" href="custom_icon_precomposed.png"/>
<link rel="apple-touch-startup-image" href="apple-touch-icon-precomposed.png">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
<script>
jQuery(window).ready(function(){
jQuery("#btnInit").click(initiate_watchlocation);
jQuery("#btnStop").click(stop_watchlocation);
});
var watchProcess = null;
function initiate_watchlocation() {
if (watchProcess == null) {
watchProcess = navigator.geolocation.watchPosition(handle_geolocation_query, handle_errors, {enableHighAccuracy:true});
}
}
function stop_watchlocation() {
if (watchProcess != null)
{
navigator.geolocation.clearWatch(watchProcess);
watchProcess = null;
}
}
function handle_errors(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED: alert("user did not share geolocation data");
break;
case error.POSITION_UNAVAILABLE: alert("could not detect current position");
break;
case error.TIMEOUT: alert("retrieving position timedout");
break;
default: alert("unknown error");
break;
}
}
function handle_geolocation_query(position) {
var text = "Latitude: " + position.coords.latitude + "<br/>" +
"Longitude: " + position.coords.longitude + "<br/>" +
"Accuracy: " + position.coords.accuracy + "m<br/>" +
"Time: " + new Date(position.timestamp);
jQuery("#info").html(text);
var image_url = "http://maps.google.com/maps/api/staticmap?sensor=false¢er=" + position.coords.latitude + ',' + position.coords.longitude +
"&zoom=14&size=300x400&markers=color:blue|label:S|" + position.coords.latitude + ',' + position.coords.longitude;
jQuery("#map").remove();
jQuery(document.body).append(
jQuery(document.createElement("img")).attr("src", image_url).attr('id','map')
);
}
</script>
</head>
<body>
<div>
<button id="btnInit" >Monitor my location</button>
<button id="btnStop" >Stop monitoring</button>
</div>
<div id="info"></div>
</body>
</html>