我正在构建一个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中。
答案 0 :(得分:2)
我没有提及确认我的答案,但我相信这是预期的行为。在Web浏览器中加载应用程序时,您尚未明确授予应用程序权限以了解您的位置。因此,系统会提示您为应用程序提供该信息的访问权限。在移动应用中,您在安装应用时提供该权限。这就是为什么(至少在Android中)显示应用程序在安装时需要的权限列表。然后,当您运行应用程序时,您已经说过它可以访问您的位置。
答案 1 :(得分:0)
请确保您在设备准备就绪后调用地理位置API - 有关详细信息,请参阅here。