4

このガイドPhonegap Geoloactaionに従って行き、最終的にこのコードを取得しました(Android):

<html>
<head>
<title>Device Properties Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.5.0.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.1.1.min.js"></script>
<script type="text/javascript" charset="utf-8">


// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);

// Cordova is ready
//
function onDeviceReady() {
jQuery(window).ready(function(){
    navigator.geolocation.getCurrentPosition(onSuccess, onError);
    });
}

// onSuccess Geolocation
//
function onSuccess(position) {
    var element = document.getElementById('geolocation');
    element.innerHTML = 'Latitude: '           + position.coords.latitude              + '<br />' +
                        'Longitude: '          + position.coords.longitude             + '<br />' +
                        'Altitude: '           + position.coords.altitude              + '<br />' +
                        'Accuracy: '           + position.coords.accuracy              + '<br />' +
                        'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br />' +
                        'Heading: '            + position.coords.heading               + '<br />' +
                        'Speed: '              + position.coords.speed                 + '<br />' +
                        'Timestamp: '          +                                   position.timestamp          + '<br />';
}

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
            'message: ' + error.message + '\n');
}

</script>
</head>
<body>
<p id="geolocation">Finding geolocation...</p>
</body>
</html>

「地理位置情報を検索しています...」というメッセージが表示されたままです。通常、アプリが自分の位置情報を使用したい場合、GPS をオンにするように求められます。通知バーに小さなアイコンが表示され、オンになっていることと GPS を検索していることがわかりますが、これは私のコードでは発生していないようです。 編集: geolocation.watchPosition 完全な例を試してみましたが、タイムアウトがあるため、タイムアウトで警告されるため、彼は私の座標を見つけようとしましたが、失敗したと思います。なぜですか? マップやその他のナビ アプリは正常に動作します

4

6 に答える 6

4

入れましたか

<feature name="http://api.phonegap.com/1.0/geolocation" />

あなたのconfig.xmlファイルに?

config.xmlPhoneGap のファイルの詳細については、このページを確認してください

于 2013-05-09T20:39:05.613 に答える
3

エミュレータでテストしていますか?

はいの場合は、Eclipse -> DDMS -> Emulator Control に移動して座標を手動でプッシュし、そこからエミュレータに位置座標を送信する必要があります。

また、デバイスの設定で位置情報サービスの使用が許可されているかどうかも確認してください。

于 2013-03-04T15:51:43.703 に答える
1

これが古いことは承知していますが、phoneGap アプリで GPS を機能させるには、Google と位置情報を共有することに「同意」する必要があることに気付きました。

以前に同意しなかった場合、その場所は毎回タイムアウトになります。

于 2014-07-16T20:10:20.110 に答える
1

GPS が機能する場合

phonegap では、アプリケーションは GPS をオンにするように求めません。これを手動で実装する必要があります。さらに、いくつかのオプションを提供できます。

var config = {
   enableHighAccuracy: true,
   timeout: 20000,
   maximumAge: 18000000
}

そのため、エラー コールバックは、タイムアウト時およびジオロケーションが位置を特定できない場合にトリガーされます。問題をデバッグして、エラー コールバックが返す内容を確認するだけです。

 navigator.geolocation.getCurrentPosition(onSuccess, onError, config);

うまくいかないとき

あなたの場合、GPSは起動しません。あなたはhtml5コードしか提供していないので、この問題についてはあまり言えません。私が想像できることの 1 つは、cordova.js ファイルが欠落していることです。

テストとデバッグを改善するには、Ripple エミュレーターを使用しますhttps://chrome.google.com/webstore/detail/ripple-emulator-beta/geelfhphabnejjhdalkjhgipohgpdnoc

Web アプリケーションをエミュレートし、ジオロケーション モッカーさえ備えています。これにより、Web コンソールを表示できるため、問題をより適切にデバッグできます。

于 2013-08-11T09:46:26.223 に答える