【发布时间】:2019-06-27 13:41:14
【问题描述】:
所以在任何人大喊重复之前,我已经阅读了几个小时的内容,我确保所有代码都在 document.addEventListener("deviceready" 中,并且仍然遇到这个问题,我使用最新版本的科尔多瓦和地理定位插件 cordova install cordova-plugin-geolocation
我已将我的 config.xml 设置为包含
<edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge">
<string>Allows events near you to be located.</string>
</edit-config>
我已经仔细检查了{app_name}-Info.plist,它确实包含NSLocationWhenInUseUsageDescription 的值,因此 config.xml 有效并且正在运行。
但是我仍然看到'{app_name}.app/www/index.html' Would Like To Use Your Current Location 通知用户
我使用的代码是
var options = {maximumAge: 0, timeout: 10000, enableHighAccuracy:true};
document.addEventListener("deviceready", function(){
navigator.geolocation.getCurrentPosition(function(e){
var currLocBtn = $('<div id="currentLocBtn">Use Current Location</div>');
currLocBtn.click(function(){
$("#lat").val(e.coords.latitude);
$("#lng").val(e.coords.longitude);
$("#locInp").val("").attr("placeholder", "Current Location");
$("#cordsText").val("Current Location");
$("#cordsDisplay").text("Current Location");
});
$("#searchoverlay").prepend(currLocBtn);
}, function(){}, options);
}, false);
如果我跑
navigator.geolocation.getCurrentPosition((e) => console.log(e), (e) => console.log(e)); 来自我的应用程序的网络检查器控制台,它的作用与科尔多瓦包装器不工作一样。
【问题讨论】:
-
很确定这是正常的吗?您有任何功能问题吗?
-
它应该通过 Codova 使用应用程序 SDK 定位系统,因此它使用 .plist 配置并说明 plist 中配置的内容,而不是使用浏览器本机
navigator.geolocation.getCurrentPosition这是它在做什么,它是应该用它自己的覆盖浏览器本机。 -
我刚刚使用地理定位和一个 .js 文件制作了全新的 Cordova 应用程序,该文件包含一个调用
navigator.geolocation.getCurrentPosition的“设备就绪”函数,它按您说的那样工作。一个简单的 javascript 运行时错误可能会导致您看到的问题 -
是的,但是我使用 Web Inspector 并且没有发生 JS 错误。
-
是的,已经解决了。
标签: javascript ios cordova geolocation