2008-10-21 13 views
38

Weiß jemand, ob das iPhone unterstützt oder bald die W3C Geolocation specification unterstützen wird?Geolocation API auf dem iPhone

Ich bin auf der Suche nach einer App für mobile Nutzer, aber anstatt die Zeit für die Entwicklung von Apps für jede Plattform (iPhone, Android, etc ...), würde ich lieber eine Web-App erstellen, die nutzt den W3C-Standard.

Antwort

45

Dieser Code funktioniert für mich erstellt haben - auf die iPhone Web-Browser Safariund als ein zusätzlicher Bonus es sogar mit FireFox 3.5 auf meinem Laptop gearbeitet! Die Geolocation-API-Spezifikation ist Teil der Standards des W3-Konsortiums Aber Achtung: Es wurde noch nicht abgeschlossen.

alt text http://blog.bemoko.com/wp-content/uploads/2009/06/iphone-geo-300-1-150x150.jpgalt text http://blog.bemoko.com/wp-content/uploads/2009/06/iphone-geo-300-2-150x150.jpg

<?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> 
+0

Bummer! Das funktioniert nicht mehr! Siehe: http://bemoko.com/blog/iphonegeo – Rimian

+0

funktioniert für mich jetzt – Jamie

+0

und es funktioniert auch mit Chrome auf Linux! –

-3

Derzeit ist es nicht möglich, die GPS-Position eines iPhone mit nur JavaScript-APIs zu erhalten. Es gab Gespräche darüber, dass dies nett wäre, aber Apple wird sich natürlich nicht zu zukünftigen Verbesserungen in der Öffentlichkeit äußern.

+2

W3C Geolocation Ich glaube, dass von Iphone bevorstehende 3.0 Upgrade unterstützt wird. – hendry

+0

Gibt es eine Entwicklung zu diesem Thema? – Jack

-1

Es ist möglich, die GPS-Informationen in JavaScript auf dem iPhone zu erhalten. Das QuickConnectiPhone-Framework macht dies sowohl für Sie als auch für Beschleunigungsinformationen verfügbar.

Um diese Informationen zu erhalten, müssen Sie die Anwendung jedoch auf dem Gerät installieren. Dieses Framework wird bald für Android-installierte Anwendungen sowie für Nokia verfügbar sein.

Sie können Ihre Anwendung in das Framework für jedes dieser Geräte stellen, kompilieren und versenden.

QuickConnectiPhone ist bei https://sourceforge.net/projects/quickconnect/

verfügbar und wenn Sie mich kontaktieren kann ich Ihnen Pre-Release-Versionen für Android und Nokia geben.

-1

Rhodes ist eine "Entwicklung-einmal-Lauf-überall" -Lösung vielversprechend. Habe sie nicht selbst ausprobiert.

0

Diese Lücke ist, warum ich die Locatable-Anwendung entwickelt - es ist im Wesentlichen ein Plug-in für iPhone Safari. Derzeit ist es nur für jailbroken Telefone verfügbar.

Siehe http://lbs.tralfamadore.com/

2

Ich habe den Code von MyWhirledView aktualisiert. Funktioniert hervorragend auf meinem iOS 4.3 Gerät. Google benötigt keinen API-Schlüssel mehr, um auf die statische Kartenbibliothek zuzugreifen.

<?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> 
+0

Vielen Dank für den Code! Es funktionierte für mein iPhone 5 iOS 6 , nachdem ich die XML-Deklaration in der ersten Zeile entfernt habe –