1

我正在构建一个 HTML5 应用程序,在其中我正在测试地理定位功能。我正在使用下面的代码来访问用户的地理位置。

if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(this.showPosition);
    }

当我使用 phonegap 在 android 上运行此代码的应用程序时,我看不到允许或拒绝用户地理定位的权限提示。

但是,在桌面浏览器上会显示提示。

我直接加载我的网页,如下面的代码在我的主要活动文件中。我没有使用 webview 对象。

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    super.loadUrl("file:///android_asset/Code/Test.html");
}

清单文件中正确提供了权限,我正在获取用户的地理位置,但权限提示未在 android 中显示。

4

2 回答 2

2

我没有参考来确认我的答案,但我相信这是预期的行为。当您在 Web 浏览器中加载应用程序时,您没有明确授予应用程序知道您的位置的权限。因此,系统会提示您授予应用访问该信息的权限。在移动应用程序中,您在安装应用程序时授予该权限。这就是为什么(至少在 Android 中)您会在安装应用程序时看到应用程序所需的权限列表。然后,当您运行该应用程序时,您已经说过它可以访问您的位置。

于 2012-12-02T19:06:58.610 回答
0

确保您在设备准备就绪后调用地理定位 API - 请参阅此处了解更多详细信息。

于 2013-05-28T21:29:33.273 回答