Android Phonegap地理定位API始终获取错误代码3
我在我的phonegap android应用程序中使用phonegap地理定位API。它总是显示错误代码3,超时错误。我还尝试将超时变量值更改为增加,使高精度为真。但结果没有变化。但它将在浏览器上工作,而不是在应用程序中运行。请给我此问题的解决方案 这是我的密码Android Phonegap地理定位API始终获取错误代码3,android,cordova,phonegap-plugins,Android,Cordova,Phonegap Plugins,我在我的phonegap android应用程序中使用phonegap地理定位API。它总是显示错误代码3,超时错误。我还尝试将超时变量值更改为增加,使高精度为真。但结果没有变化。但它将在浏览器上工作,而不是在应用程序中运行。请给我此问题的解决方案 这是我的密码 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scal
<!DOCTYPE html>
<html>
<head>
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
<link rel="stylesheet" href="css/contact.css" type='text/css' />
<link rel="stylesheet" href="css/jquery.mobile-1.3.1.min.css"
type='text/css' />
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyCJAbwOQjaVjDy9XJ0UEZCvTdZeW_atXak&sensor=false">
</script>
<script type="text/javascript" charset="utf-8" src="cordova-2.9.0.js"></script>
<script src="jquery.mobile/jquery-1.10.2.min" type='text/javascript'></script>
<script>
document.addEventListener("deviceready", onDeviceReady, false);
$(document).on("mobileinit", function() {
$.mobile.phonegapNavigationEnabled = true;
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
$.mobile.loadingMessageTextVisible = true;
$.mobile.pageLoadErrorMessage;
});
$(document).ready(function() {
$('#Login').show();
$('#Contacts').hide();
});
function success(name) {
alert(name);
}
function error() {
alert("error");
}
function login() {
var name = $("#name").val();
if (navigator.notification) {
navigator.notification.alert("Welcome " + name, alertDismissed, 'Sample App', 'Ok');
} else {
alert("Welcome " + name);
}
var options = {
enableHighAccuracy: true,
timeout: 8000,
maximumAge: 10000
};
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
$("#Login").hide();
$("#Contacts").show();
}
function alertDismissed() {
console.log("ok");
}
function onSuccess(position) {
var latt1 = position.coords.latitude;
var lont1 = position.coords.longitude; //alert(latt1+" "+lont1);
var myLatlng1 = new google.maps.LatLng(latt1, lont1);
var mapOptions1 = {
center: myLatlng1,
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions1);
var marker1 = new google.maps.Marker({
position: myLatlng1,
map: map,
title: "You are here! (at least within a " + position.coords.accuracy + " meter radius)"
});
var circle = new google.maps.Circle({
radius: 26000,
strokeColor: "#00FF00",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#C0C0C0",
fillOpacity: 0.35,
map: map
});
marker1.setIcon("./images/blue_dot_circle.png");
marker1.setMap(map);
}
function onError(error) {
if (navigator.notification) {
navigator.notification.alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n', alertDismissed, 'Sample App', 'Ok');
} else {
alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}
}
function AlertConfirmed(buttonIndex) {
if (buttonIndex == 1) {
device.exitApp();
console.log(buttonIndex);
} else {
console.log(buttonIndex);
}
}
function goHome() {
navigator.app.loadUrl("http://www.google.co.in", {
openExternal: true
});
}
</script>
<script src="jquery.mobile/jquery.mobile-1.3.1.min.js"
type='text/javascript'></script>
</head>
<body>
<div data-role="page" >
<div id="Login">
<div data-role="header" data-position="fixed" data-theme="b"
data-tap-toggle="false" class="header" data-transition="none"
id="myFixedHeader">
<p>Sample Application</p>
</div>
<div data-role="content">
<div id="title">
<div
style="width: 90%; padding-left: 5%; padding-right: 5%; padding-top: 3%; padding-bottom: 1%;">
<input type="text" name="password" id="name" data-mini="true"
placeholder="Enter Your Name " value="" data-inline="true">
</div>
<center>
<div id="log" onclick="login()">Login</div>
</center>
</div>
</div>
<div data-role="footer" data-theme="b" data-position="fixed"
class="footer" data-transition="none" data-tap-toggle="false">
<p onclick="goHome()">© 2014
Sample App Reserved, LLC.</p>>
</div>
</div>
<div id="Contacts">
<div data-role="header" data-theme="b" data-tap-toggle="false"
data-position="fixed" class="header" data-transition="none">
<h3 id="htitle">Home Page</h3>
</div>
<div data-role="content" id="map_canvas" >
</div>
<div data-role="footer" data-theme="b" data-position="fixed"
class="footer" data-transition="none" data-tap-toggle="false">
<p onclick="goHome()">© 2014
Sample App Reserved, LLC.</p>
</div>
</div>
</body>
</html>
I have added Permissions INTERNET,FINE_LOCATION,COARSE_LOCATION in manifest file
and corrova 2.9.0.js
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
$(文档).on(“mobileinit”,函数(){
$.mobile.phonegapNavigationEnabled=true;
$.support.cors=true;
$.mobile.allowCrossDomainPages=true;
$.mobile.loadingMessageTextVisible=true;
$.mobile.pageLoadErrorMessage;
});
$(文档).ready(函数(){
$('#Login').show();
$(“#联系人”).hide();
});
函数成功(名称){
警报(名称);
}
函数错误(){
警报(“错误”);
}
函数登录(){
var name=$(“#name”).val();
if(navigator.notification){
navigator.notification.alert(“欢迎”+名称,AlertDisposed,'Sample App','Ok');
}否则{
警报(“欢迎”+姓名);
}
变量选项={
EnableHighAccurance:正确,
超时:8000,
最高限额:10000
};
navigator.geolocation.getCurrentPosition(onSuccess、onError、options);
$(“#登录”).hide();
$(“#联系人”).show();
}
函数{
控制台日志(“ok”);
}
成功时的功能(位置){
var latt1=位置坐标纬度;
var lont1=position.coords.longitude;//警报(latt1+“”+lont1);
var mylatng1=新的google.maps.LatLng(latt1,lont1);
变量映射选项1={
中心:myLatlng1,
缩放:10,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map_canvas”),mapOptions1);
var marker1=新的google.maps.Marker({
位置:myLatlng1,
地图:地图,
标题:“你在这里!(至少在“+位置.坐标.精度+”米半径内)
});
var circle=new google.maps.circle({
半径:26000,
strokeColor:#00FF00“,
笔划不透明度:0.8,
冲程重量:2,
填充颜色:“C0”,
不透明度:0.35,
地图:地图
});
marker1.setIcon(“./images/blue_dot_circle.png”);
marker1.setMap(map);
}
函数onError(错误){
if(navigator.notification){
navigator.notification.alert('code:'+error.code+'\n'+'消息:'+error.message+'\n',alertdiscomered','Sample App','Ok');
}否则{
警报('code:'+error.code+'\n'+'消息:'+error.message+'\n');
}
}
功能警报已确认(按钮索引){
如果(按钮索引==1){
device.exitApp();
控制台日志(按钮索引);
}否则{
控制台日志(按钮索引);
}
}
函数goHome(){
navigator.app.loadUrl(“http://www.google.co.in", {
openExternal:对
});
}
示例应用程序
登录
©;2014
示例应用程序保留,LLC.
>
主页
©;2014
样本应用程序保留,有限责任公司
我在清单文件中添加了权限INTERNET、精细位置、粗略位置
和corrova 2.9.0.js
请确保在android清单中设置了
我在config.xml中犯了一个错误
I made one mistake in config.xml.Now,I have added
<access origin="*"/>
<access origin="*://*.googleapis.com/*" subdomains="true" />
<access origin="*://*.gstatic.com/*" subdomains="true" />
<access origin="*://*.google.com/*" subdomains="true" />
<access origin="*://*.googleusercontent.com/*" subdomains="true" />
in my config.xml file.googlemap geolocation showed successfully
在我的config.xml文件中,Google地图地理位置显示成功
在app/res/xml/config.xml中输入
条目:
以及app/AndroidManifest.xml中的
条目:
还要确保EnableHighAccurance参数设置为true
干杯 在哪个版本的Android上确保您在清单中添加了权限。在浏览器中它将显示地理位置,但在应用程序中不显示。我已经测试了所有版本,如2.1到4.2。我添加了访问位置、访问位置、Internet的权限