我正在做我的第一个 cordova 项目,我正在一个模拟器上测试。
我需要使用导航仪地理定位来获取坐标。
我已经安装了cordova geolocation插件,它也在config.xml文件中提到了。我已经在模拟器设置中为应用程序提供了位置访问权限,我还在模拟器的扩展设置中单击了“发送”按钮。
尽管如此,地理定位还是失败了,我不知道为什么。
下面是js代码:
//第一次初始化进入页面,处理进入页面输入验证
$(document).delegate("#entry_page","pageinit",function()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(onSuccess, onError, {timeout: 30000});
}
//rest of code
if(latitude == null || longitude == null)
{
alert("Location not given. Please allow location access and refresh the application");
error_free = 0;
}
if(dateTime == null)
{
alert("Date & Time not acquired");
error_free = 0;
}
// remaining code
});
});
//Get location and time values on successful location access
function onSuccess(position)
{
latitude = position.coords.latitude;
longitude = position.coords.longitude;
today = new Date();
date = today.getDate()+'/'+(today.getMonth()+1)+'/'+today.getFullYear();
time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
dateTime = date+' '+time;
}
//Throw error if location access is not possible
function onError(error) {
var txt;
switch(error.code)
{
case error.PERMISSION_DENIED:
txt = 'Location permission denied';
break;
case error.POSITION_UNAVAILABLE:
txt = 'Location position unavailable';
break;
case error.TIMEOUT:
txt = 'Location position lookup timed out';
break;
default:
txt = 'Unknown position.'
}
alert(txt)
}
//Reinitialise entry_page when it is revisted again
$(document).on("pageshow", "#entry_page", function()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(onSuccess, onError, {timeout: 30000});
}
changeHeaderName("#chickenNameHeader");
clearFields();
});
我正在使用Nginx和Nodejs。我的Nginx配置为https。
2条答案
按热度按时间ig9co6j11#
如果您的android版本〉= Android M,您需要首先向用户请求运行时位置权限。
使用this cordova plugin请求位置权限。
4si2a6ki2#
对我来说,这段代码很好用:
我正在使用对象解构(ES6)。