geo fix
エミュレーター ( telnetを使用している場合でも) とデバイスの両方で、Geolocation を Android で動作させるのに問題があります。iOS、WP8、およびブラウザーで動作します。
次のコードを使用してデバイスに場所を尋ねると、常にエラーが発生します (私の場合は、エラー コードとエラー メッセージの両方を使用してカスタマイズRetrieving your position failed for unknown reason.
しています)。null
関連コード:
successHandler = (position) ->
resolve App.Location.create
lat: position.coords.latitude
lng: position.coords.longitude
errorHandler = (error) ->
error = switch error.code
when 1
App.LocationError.create
message: 'You haven\'t shared your location.'
when 2
App.LocationError.create
message: 'Couldn\'t detect your current location.'
when 3
App.LocationError.create
message: 'Retrieving your position timeouted.'
else
App.LocationError.create
message: 'Retrieving your position failed for unknown reason. Error code: ' + error.code + '. Error message: ' + error.message
reject(error)
options =
maximumAge: Infinity # I also tried with 0
timeout: 60000
enableHighAccuracy: true
navigator.geolocation.getCurrentPosition(successHandler, errorHandler, options)
プラットフォーム/アンドロイド/AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
www/config.xml (念のため)
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.GeoBroker" />
</feature>
コルドバ 3.1.0 を使用します。Android 4.2 でのテスト。プラグインがインストールされました。index.html に含まれる Cordova.js (InAppBrowser などの他のプラグインは正常に動作しています)。
$ cordova plugins ls
[ 'org.apache.cordova.console',
'org.apache.cordova.device',
'org.apache.cordova.dialogs',
'org.apache.cordova.geolocation',
'org.apache.cordova.inappbrowser',
'org.apache.cordova.vibration' ]
私は無知です。何か不足していますか?