【问题标题】:how to get current location in phonegap?如何在phonegap中获取当前位置?
【发布时间】:2014-07-29 07:21:15
【问题描述】:

我在我的应用程序中添加了地理定位插件,并使用此代码获取 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");
}

我的代码哪里出了问题?

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

【问题讨论】:

  • 添加更多信息,例如您遇到了什么错误?在 eclipse logcat 中查看错误。也试试这个var options = { enableHighAccuracy: true }; navigator.geolocation.getCurrentPosition(onSuccess, onError, options); 警报'4'会触发吗?
  • alert("4") 着火了。但下一行是行不通的。并且没有错误。 :'(
  • 建议: 1. 检查地理定位是否正确安装? 2.重新启动你的手机(愚蠢的解决方案,但它有时会起作用) 3.检查你的地理权限和设置是否在设备中打开 4.使用我在评论中添加的代码进行测试 5.如果你使用的是 android,请尝试获取eclipse logcat 的错误。
  • 谢谢我的朋友。我重置手机并使用此代码。感谢您的帮助。 :)
  • 哈哈:欢迎我很久以前就遇到过这个问题。这有点好笑。让我给你这些建议作为答案。

标签: cordova geolocation


【解决方案1】:
  1. 检查地理定位是否正确安装

  2. 重启你的手机(愚蠢的解决方案,但它有时会起作用。我遇到过一次)

  3. 检查您的地理权限和设置是否已在设备中打开

  4. 用这段代码测试

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

  5. 如果您使用的是 android,请尝试使用 eclipse logcat 获取错误。

【讨论】:

    【解决方案2】:

    在 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" />
    

    【讨论】:

    • ""在 Android 上,它只有在您在 app/AndroidManifest.xml 中设置了正确的权限时才有效:"" 这有助于我确定地理定位,在我的情况下是反向地理定位问题。
    猜你喜欢
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多