2013-02-28 28 views
1

我有一個簡單的JavaScript代碼,可以獲得用戶的座標,在計算機上工作正常,但對手機無法說明。地理位置在手機上不起作用

function getLocation() 
    { 
    if (navigator.geolocation) 
    { 
    navigator.geolocation.getCurrentPosition(showPosition); 
    } 
    else{x.innerHTML="Geolocation is not supported by this browser.";} 
} 

從w3schools得到了這個。第一次它問我是否想分享我的位置(同意),當我按下按鈕執行該功能時沒有任何反應(也沒有錯誤信息),在我的電腦上工作,所以它不是代碼。 嘗試在2個不同的設備上:星系連接和星系s2都變甜。 嘗試在鉻,鉻測試版,Firefox和內置的瀏覽器。 對其中的一些它甚至不打擾彈出「共享位置」消息。 我該如何解決這個問題?

+0

http://w3fools.com – Jason 2013-03-26 19:37:45

回答

0

Html5的地理位置要求用戶權限。如果你不想要這樣的話,那麼去找一個像https://www.geoip-db.com這樣的外部定位器。它們提供了一個JSON和JSONP回調解決方案。

甲普通的JavaScript例如:

<!DOCTYPE html> 
<html> 
<head> 
<title>Geo City Locator by geoip-db.com</title> 
</head> 
<body> 
    <div>Country: <span id="country"></span></div> 
    <div>State: <span id="state"></span></div> 
    <div>City: <span id="city"></span></div> 
    <div>Postal: <span id="postal"></span></div> 
    <div>Latitude: <span id="latitude"></span></div> 
    <div>Longitude: <span id="longitude"></span></div> 
    <div>IP address: <span id="ipv4"></span></div>        
</body> 

<script> 

    var country = document.getElementById('country'); 
    var state = document.getElementById('state'); 
    var city = document.getElementById('city'); 
    var postal = document.getElementById('postal'); 
    var latitude = document.getElementById('latitude'); 
    var longitude = document.getElementById('longitude'); 
    var ip = document.getElementById('ipv4'); 

    function callback(data) 
    { 
     country.innerHTML = data.country_name; 
     state.innerHTML = data.state; 
     city.innerHTML = data.city; 
     postal.innerHTML = data.postal; 
     latitude.innerHTML = data.latitude; 
     longitude.innerHTML = data.longitude; 
     ip.innerHTML = data.IPv4; 
    } 

    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = 'https://geoip-db.com/json/geoip.php?jsonp=callback'; 
    var h = document.getElementsByTagName('script')[0]; 
    h.parentNode.insertBefore(script, h); 

</script> 
</html> 
相關問題