过去两天我一直在努力解决这个问题。我看过各种各样的回答,但没有一个能解决我的问题。我正在使用Phonegap Build来发布iPhone应用程序。功能之一是获取用户的当前位置。在地图加载之前,我收到两个警报,第一个是正常警报,询问我是否要授予我当前位置。但是,第二个警报显示文件所在的目录路径,还询问我是否要将应用程序权限授予我的位置(请参见下图)我在此尝试了以下建议的解决方案Location permission alert on iPhone with PhoneGap,但没有任何运气。
这就是我在config.xml文件中的内容
<gap:plugin name="org.apache.cordova.geolocation" source="npm"/>
<allow-intent href="geo:*" />
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<gap:config-file platform="ios" parent="NSLocationAlwaysUsageDescription" overwrite="false">
<array>
<string>needs your location</string>
</array>
</gap:config-file>
我从body标签
调用init函数 function init(){
document.addEventListener("deviceready",onDeviceReady,false);
}
function onDeviceReady(){
navigator.geolocation.getCurrentPosition(success, fail);
}
How to prevent double prompt for geolocation in Phonegap app?
Location permission alert on iPhone with Cordova
我可能做错了什么?是否有任何人可以推荐的示例或教程?
答案 0 :(得分:1)
将地理位置代码放入platform.ready()
this.platform.ready().then(() => {
this.geolocation.getCurrentPosition().then((resp) => {
console.log(resp.coords.latitude);
console.log(resp.coords.longitude);
})
答案 1 :(得分:0)
我终于想通了,我添加了以下几行,第二个警告不再显示
<script src="index.js"></script>
<script src="cordova.js"></script>