【发布时间】:2013-10-29 18:56:10
【问题描述】:
我无法在模拟器(即使我通过 telnet geo fix)和设备上让 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)
platforms/android/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>
使用 Cordova 3.1.0。在安卓 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' ]
我一无所知。我错过了什么吗?
【问题讨论】:
-
您是否使用 CLI 构建了您的项目?
-
CLI 和 Phonegap 构建。我已经构建了一个简单的应用程序,可以在其中使用 geo,所以今天我将比较有什么不同并更新问题。
-
Kreeki 是否有更多关于此问题的更新?你有没有比较你的构建?
-
您能否编辑您的标题,使其包含 kony 工作室,因为问题和解决方案是等价的(;,这样您将获得更多观看次数并因此获得积分 xD
标签: android cordova geolocation