2012-12-02 29 views
1

我正在构建一个HTML5应用程序,我正在测试地理定位功能。 我正在使用下面的代码来访问用户的地理位置。android地理位置权限promt不会来 - phoonegap应用程序

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

当我运行在Android上使用PhoneGap的使用这段代码的应用程序,我没有看到提示的权限允许或拒绝用户的geolcation。

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

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

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

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

的权限给予适当的清单文件和我得到的用户在Android的地理位置,但权限提示犯规显示器。

+0

您是否在您的应用/ AndroidManifest.xml中添加权限? http://docs.phonegap.com/en/2.2.0/cordova_geolocation_geolocation.md.html#Geolocation – Ajouve

回答

2

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

+0

没错。您在安装应用程序的时刻给予它许可。 –

0

确保您在设备准备就绪后调用地理位置API - 有关更多详细信息,请参阅here