1

私のデバイスは HTC One X で、ブラウザは Chrome です。HTML5 GeoLocation をブラウザーで動作させようとしていますが、できません。iOS とデスクトップでは動作しますが、Android では何も動作しません。以下は私のコードです:

<!DOCTYPE html>
<html>
  <head>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
    <meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport'>
      <title>HTML5 Test</title>
      <script src='http://cloud.keepiteasy.net/libs/modernizr.custom.89661.js' type='text/javascript'></script>
      <script src='http://cloud.keepiteasy.net/libs/jquery.js' type='text/javascript'></script>
    </meta>
  </head>
  <body>
    <script type="text/javascript">
      $(function() {
        if (Modernizr.geolocation) {
          navigator.geolocation.getCurrentPosition(success, error);
        }

        function success(position) {
          var lat = position.coords.latitude;
          var lng = position.coords.longitude;

          alert(lat);
          alert(lng);
        }

        function error(err) {
          if(err.code == 1) { 
            alert("Error: Access is denied!"); 
          }else if( err.code == 2) { 
            alert("Error: Position is unavailable!"); 
          } 
        }
      });
    </script>
  </body>
</html>

更新: doctype を修正しました。 更新: エラー関数を更新しました。 更新: 私の HTC では、まだ何も得られません。エラーすらありません。私のNexus 7(試してみたところ)では、うまく動作します... WTF、ハードウェアの問題ですか?しかし、他の GPS ベースのアプリは動作します...

4

3 に答える 3

3

HTC One Xでも同じ問題が発生しました。少なくとも、タイムアウトを追加することで、エラー関数が呼び出されることを確認できます。

navigator.geolocation.getCurrentPosition(success, error, {timeout:3000});

この例では、エラー関数は3秒後に呼び出されます。

于 2013-03-06T08:52:42.463 に答える
1

OneXでジオロケーションを取得できるウェブサイトがないため、何らかのハードウェアの問題のようですが、上記のコードであるNexus7は正常に機能します。

于 2013-02-18T15:52:52.037 に答える