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

Sad*_*jad 3 geolocation cordova

我在我的应用程序中添加了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");
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢你,对不起我的英语不好.

Ata*_*CSE 7

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

  2. 重启你的手机(愚蠢的解决方案,但它有时工作.我面对它一次)

  3. 检查您的地理位置权限和设置是否已在设备中启用

  4. 用这段代码测试

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

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


kri*_*rik 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" />
Run Code Online (Sandbox Code Playgroud)