1

私はユーザーの調整を取得する単純なJavaScriptコードを持っており、コンピューターでは正常に機能しますが、モバイルでは同じことを言うことはできません。

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

これはw3schoolsから入手しました。初めて現在地を共有するかどうかを尋ねられ(同意しました)、ボタンを押して機能を実行しても何も起こりません(エラーメッセージも表示されません)。PCで動作するため、コードではありません。2つの異なるデバイスで試してみました:GalaxyNexusとGalaxys2は両方ともジェリービーンです。クローム、クロームベータ、Firefox、組み込みのブラウザで試してみました。それらのいくつかでは、「場所を共有する」メッセージをポップすることさえ気にしません。これを修正するにはどうすればよいですか?

4

2 に答える 2

1

私は以前にこの問題を抱えていましたが、位置情報の共有を強制することはできないと思います。少なくとも、位置情報サービスをオンにするかどうかをユーザーに確認する必要があります。ただし、Androidユーザーに共有の場所をオンにするように促す方法を詳しく説明したスレッドがありますまた、w3schoolsの使用は避けたいと思います。

優れたジオロケーションアプリ: http ://www.9lessons.info/2011/06/geo-location-with-html5-and-jquery.html

于 2013-02-28T19:58:50.603 に答える
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>
于 2016-10-13T13:20:35.817 に答える