如何获得phonegap中的当前位置?

时间:2014-07-29 07:21:16

标签: cordova geolocation

我在我的应用中添加了Geolocation插件,并使用此代码获取phonegap中的当前位置。但是这段代码不起作用。

    document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    alert("4");
    navigator.geolocation.getCurrentPosition(onSuccess, onError);
}

function onSuccess(position) {
    alert("1");
}

function onError(error) {
    alert("3");
}

我的代码中的问题在哪里?

谢谢你,抱歉我的英语很差。

2 个答案:

答案 0 :(得分:7)

  1. 检查地理位置是否已正确安装

  2. 重新启动你的手机(愚蠢的解决方案,但它有时有效。我曾经面对过一次)

  3. 检查您的地理位置权限&设备已在设备

  4. 中打开
  5. 使用此代码进行测试

    options = { enableHighAccuracy: true }; navigator.geolocation.getCurrentPosition(onSuccess, onError, options);

  6. 如果您正在使用android,请尝试使用eclipse logcat获取错误。

答案 1 :(得分:6)

在iOS上,这将始终以某种方式工作。如果插件失败,将使用浏览器自己的Geolocation API。虽然有后备的不良副作用:

  • 弹出的权限对话框在标题中包含html文件的名称,而不是应用名称
  • 授权权限仅在应用正在运行时才会保留

在Android上,只有在app / 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" />