Поэтому, прежде чем кто-нибудь выкрикнет дубликат, я часами читал материал по этому вопросу, я удостоверился, что весь код находится в document.addEventListener("deviceready"
, и все еще решаю эту проблему, используя последнюю версию cordova и плагин геолокации 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));
из консоли веб-инспектора в моем приложении выполняется то же самое, что и оболочка cordova не работает.