2014-04-15 39 views
2

我使用PhoneGap的地理位置API在我的PhoneGap的Android application.It始終顯示錯誤代碼代碼3,超時error.I我也嘗試超時變量值改爲增加,enableHighAccuracy是真實的但結果沒有變化,但它會在瀏覽器上運行,而不是在應用程序中運行。給我解決這個問題的方法。PhoneGap的地理位置API總是得到錯誤代碼3

這是我的代碼

<!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()">&copy;&nbsp;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()">&copy;&nbsp;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 
+1

上的安卓版本 – user1374

+0

確保您在清單中添加的權限。 – Aravin

+0

在瀏覽器中,它會顯示地理位置而不是在APP我已經測試了所有像2.1到4.2我已經加入ACCESS_FINE_LOCATION,ACCESS_COARSE_LOCATION,互聯網的權限版本 – prakash

回答

0
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 
0

請確保你在你的Android清單<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />集。在應用

0

使詞條/ RES/XML/config.xml中

項:

而且在app/AndroidManifest.xml中

項:

而且確保enablehighAccuracy參數設置爲true。

乾杯!

相關問題