API de géolocalisation sur l'iPhone
-
03-07-2019 - |
Question
Est-ce que quelqu'un sait si l'iPhone prend en charge ou supportera bientôt la spécification de géolocalisation W3C ?
Je souhaite créer une application pour les utilisateurs mobiles, mais plutôt que de passer du temps à développer des applications pour chaque plate-forme différente (iPhone, Android, etc.), je préférerais de loin créer une application Web qui utilisation de la norme W3C.
La solution
Ce code a fonctionné pour moi. Sur le navigateur Web de l'iPhone Safari et , il a même fonctionné avec FireFox 3.5 sur mon ordinateur. portable! La spécification API de géolocalisation fait partie des normes du consortium W3 Mais sachez qu'elle n'est pas encore finalisée.
(source: bemoko.com )
(source: bemoko.com )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Geolocation API Demo</title>
<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport"/>
<script>
function successHandler(location) {
var message = document.getElementById("message"), html = [];
html.push("<img width='256' height='256' src='http://maps.google.com/maps/api/staticmap?center=", location.coords.latitude, ",", location.coords.longitude, "&markers=size:small|color:blue|", location.coords.latitude, ",", location.coords.longitude, "&zoom=14&size=256x256&sensor=false' />");
html.push("<p>Longitude: ", location.coords.longitude, "</p>");
html.push("<p>Latitude: ", location.coords.latitude, "</p>");
html.push("<p>Accuracy: ", location.coords.accuracy, " meters</p>");
message.innerHTML = html.join("");
}
function errorHandler(error) {
alert('Attempt to get location failed: ' + error.message);
}
navigator.geolocation.getCurrentPosition(successHandler, errorHandler);
</script>
</head>
<body>
<div id="message">Location unknown</div>
</body>
</html>
Autres conseils
Vous pouvez désormais obtenir l'emplacement des API Javascript dans le navigateur Safari après la version iPhone 3.0 - nous avons créé un exemple de travail @ http://blog.bemoko.com/2009/06/17/iphone-30-geolocation-javascript-api/
Depuis l’iPhone OS 3.0, Safari prend en charge l’emplacement géographique. Voir: Bibliothèque de référence Safari: Localisation géographique / a> De l’autre côté, la spécification W3C Geo API est toujours en projet.
J'ai mis à jour le code de MyWhirledView. Fonctionne très bien sur mon appareil iOS 4.3. Google n'a plus besoin d'une clé API pour accéder à sa bibliothèque de cartes statiques.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>iPhone 4.0 geolocation demo</title>
<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport"/>
<script>
function handler(location) {
var message = document.getElementById("message");
message.innerHTML ="<img src='http://maps.google.com/maps/api/staticmap?center=" + location.coords.latitude + "," + location.coords.longitude + "&zoom=14&size=256x256&maptype=roadmap&sensor=false&markers=color:blue%7Clabel:ABC%7C" + location.coords.latitude + "," + location.coords.longitude + "' />";
message.innerHTML+="<p>Longitude: " + location.coords.longitude + "</p>";
message.innerHTML+="<p>Accuracy: " + location.coords.accuracy + "</p>";
message.innerHTML+="<p>Latitude: " + location.coords.latitude + "</p>";
}
navigator.geolocation.getCurrentPosition(handler);
</script>
</head>
<body>
<div id="message">Location unknown</div>
</body>
</html>
C’est pour cette raison que j’ai développé l’application Locatable - c’est essentiellement un plug-in pour iPhone Safari. Actuellement, il n'est disponible que sur les téléphones jailbreakés.
Il est possible d’obtenir les informations GPS en JavaScript sur l’iPhone. Le cadre QuickConnectiPhone expose cela pour vous, ainsi que des informations sur l'accélération.
Pour obtenir ces informations, vous devrez toutefois installer l'application sur le périphérique. Ce cadre sera bientôt disponible pour les applications installées sur Android ainsi que Nokia.
Vous pouvez intégrer votre application dans le cadre de chacun de ces périphériques, la compiler et l'expédier.
QuickConnectiPhone est disponible à l'adresse https://sourceforge.net/projects/quickconnect/
et si vous me contactez, je peux vous fournir des versions préliminaires pour Android et Nokia.
Rhodes promet un "développement unique en son genre". Solution. Je ne les ai pas essayées moi-même.
Cette petite bibliothèque javascript est multiplate-forme et prend en charge tous les smartphones modernes prêts à l'emploi:
Voici comment vous l'utilisez:
//determine if the handset has client side geo location capabilities
if(geo_position_js.init()){
geo_position_js.getCurrentPosition(success_callback,error_callback);
}else{
alert("Functionality not available");
}
Actuellement, il n'est pas possible d'obtenir la position GPS d'un iPhone en utilisant uniquement des API JavaScript. Il a été dit que ce serait bien, mais Apple ne fera évidemment aucun commentaire sur les améliorations futures en public.