0

私は IBM Worklight を初めて使用します。Google マップを使用しているときに、GPS を使用してデバイスの現在位置を取得する必要があります。

エミュレーターではエラーは発生しませんが、電話では次のアラートが表示されます

{"メッセージ":."位置情報サービスを開始できませんでした "," コード":2}

次のコードは を使用しています。

function alertGeo() {
    navigator.geolocation.getCurrentPosition(onSuccess, onError);
    function onSuccess(position) {
        codeLatLng(position.coords.latitude,position.coords.longitude);
    }
    function onError(error) {
        alert(JSON.stringify(error));
    }
}


function codeLatLng(lat,lng) {

      var latlng = new google.maps.LatLng(lat, lng);
      geocoder = new google.maps.Geocoder();
      geocoder.geocode({'latLng': latlng}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          if (results[1]) {
           alert("Address: " + results[1].formatted_address);

          } else {
            alert('No results found');
          }
        } else {
          alert('Geocoder failed due to: ' + status);
        }
      });
    }
4

1 に答える 1

2

android\native\AndroidManifest.xml で次の権限が設定されていることを確認してください。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

また、enableHighAccuracy: trueオプションを追加してみてください:

navigator.geolocation.getCurrentPosition(onSuccess, onError, {enableHighAccuracy: true});
于 2014-11-26T04:24:59.563 に答える