我意识到这个问题已经被问了 100 次,我觉得我已经阅读了每个问题和答案,但我还没有找到解决问题的方法。
我已正确安装和配置 PhoneGap 插件。
我已确认所有文件都位于插件 > org.apache.cordova.geolocation 文件夹中
这是对我的 config.xml 中的地理定位功能的调用
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />
<param name="ios-package" value="CDVLocation" />
</feature>
我的应用程序仅在用户要求查找其位置时才调用地理定位。尽管如此,我还是确保使用:
document.addEventListener("deviceready", beginSetup, false);
在调用地理定位之前确保设备准备就绪。
第一个请求使用我的应用名称。第二个调用显示一个长而难看的 url。在第一个请求之后,应用程序名称请求消失了(到目前为止完美)但是丑陋的 url 仍然请求许可。
设备准备就绪后,我将位置调用绑定(bind)到点击事件,如下所示:
geocoder = new google.maps.Geocoder();
$("#my-location").bind( "tap", function(e){
//unrelated code omitted
//I know these times are big, but this is just testing at this point
var options = { maximumAge: 3600000, timeout: 60000, enableHighAccuracy: true };
if(map != null){
circle.setMap(null);
personalCircle.setMap(null);
google.maps.event.clearInstanceListeners(map);
deleteMarkers();
map = null;
}
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
});
提前感谢您的建议。如果您想查看任何其他代码,请告诉我。
编辑 根据@cagdas 的建议,我将以下几行添加到我的 config.xml 中。仍然遇到同样的问题。
<gap:plugin name="org.apache.cordova.geolocation" />
<feature name="http://api.phonegap.com/1.0/geolocation"/>
更新
最近版本的 PhoneGap 似乎已经解决了这个问题。现在,当我编译应用程序时,我不再有这个问题。我不必更改我的代码中的任何内容。
最佳答案
您需要在 config.xml 中包含以下行:
<gap:plugin name="org.apache.cordova.geolocation" />
如果未包含,HTML Geolocation 会尝试查找您的位置,并且正如您提到的某些 URL - 可能包括您的 MAC 或其他设备标识符 - 需要批准。
在包括上行之后,对于 Android 和 Windows 设备,请插入下行以适应正确的前提条件:
<feature name="http://api.phonegap.com/1.0/geolocation"/>
请检查这些文档以检查正确的 phonegap 版本:
http://docs.build.phonegap.com/en_US/2.9.0/configuring_features.md.html https://build.phonegap.com/plugins/627
关于ios - Phonegap GPS 询问两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22211316/