2014-01-21 70 views
1

剛接觸phonegap,並在我第一次嘗試時遇到問題。這可以在線工作,無法在模擬器上啓動地理位置(或其他),並且在上傳到我的設備時會出現「Uncaught ReferenceError:google未定義:41」錯誤。未捕獲的ReferenceError:谷歌沒有定義:41

我能想到的唯一的事情就是不加載地圖js文件,或者某些命令沒有正確構建。我看到的所有示例和項目都可以方便地跳過實際的設備測試

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>asd</title> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<meta name="apple-mobile-web-app-capable" content="yes"> 
<meta name="apple-mobile-web-app-status-bar-style" content="black"> 
<link href="css/codiqa.ext.min.css" rel="stylesheet"> 
<link href="css/jquery.mobile-1.3.1.min.css" rel="stylesheet"> 
<script src="js/jquery-1.9.1.min.js"></script> 
<script src="js/jquery.mobile-1.3.1.min.js"></script> 
<script src="js/codiqa.ext.min.js"></script> 
<script src="cordova.js"></script> 
<script type="text/javascript" 
    src="https://maps.googleapis.com/maps/api/js?key=MYKEY0&sensor=true"> 
    </script> 
<style> 
    html{height:100%;} 
    body{height:100%; margin:0; padding:0;} 
    #map-canvas{height:50%;} 
    #content { 
     padding:0; 
     position:absolute !important; 
     top:40px !important; 
     right:0; 
     bottom:40px !important; 
     left:0 !important; 
     z-index:10; 
    } 
    #bottom {margin-top:65%;} 
</style> 
<script type="text/javascript"> 
    $(document).on('pageinit', '#page1', function(e,data) { getPos(); }); 
    var lat; 
    var lng; 

    function getPos(){ navigator.geolocation.getCurrentPosition(onSuccess, onError); } 

    function initializeMap() { 
     console.log('init: '+lat+':'+lng); 
     var myLatlng = new google.maps.LatLng(lat,lng); 
     var mapOptions = { 
      zoom:8, 
      center:myLatlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 
     var map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions); 
    } 

    function onSuccess(position){ 
     lat = position.coords.latitude; 
     lng = position.coords.longitude; 
     console.log(lat+":"+lng); 
     initializeMap(); 
    } 

    function onError(error){ 
     alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n'); 
    } 
</script> 
</head> 
<body> 
<div id="page1" data-role="page" data-theme="a"> 
    <div data-theme="a" data-role="header"> 
     <h3>MapIt</h3> 
     <a data-rel="back">Back</a> 
    </div>  
    <div data-role="content" id="content"> 
     <div id="map-canvas"></div> 
    </div> 
    <div id="bottom"> 
     <a href="#" class="add-markers" data-role="button" data-theme="a">AddMarkers</a>  
     <div data-controltype="textinput"> 
      <input name="" id="textinput2" placeholder="City and state" value="" type="text"> 
     </div> 
     <input type="submit" value="Submit"> 
     <input type="submit" value="My Location"> 
    </div>  
</div> 
</body> 
</html> 

我已經試過我在這裏和網上看到的每個解決方案。令人驚訝的是,只有一個半頁的谷歌結果與這個標題和phonegap。 在我的手機上顯示除地圖以外的所有內容。 它是這條線,它失敗

var myLatlng = new google.maps.LatLng(lat,lng); 

在此先感謝。

****UPDATE SOLVED**** 

這是白名單 有兩個人是需要在res/XML/config.xml文件更改爲此

  1. 資產/ WWW/config.xml中

我已經改變了index.html文件旁邊的一個,並且不知道res/xml中的其他位置。在index.html文件的上方有一個res文件夾,我查看並沒有看到一個xml文件夾。

希望將這些信息位幫助別人

+0

你的config.xml中有嗎? –

+0

<訪問起源=「googleapis.com」subdomains =「true」/>是的,我做 – Jptalon

+0

我檢查了Chrome和FF代碼,它的工作原理沒有問題。你的鑰匙呢?你有啓用它的android?我使用'google.maps.event.addDomListener(window,'load',getPos);'進行初始化,而不是第一行腳本。 –

回答

0

這是白名單中有兩個人是需要改變這個

<access origin="*" /> 

1.in /資產/網絡/配置。 XML

2.in /res/xml/config.xml

我改變了旁邊index.html文件中的一個不知道對方在那裏在res/XML。在index.html文件的上方有一個res文件夾,我查看並沒有看到一個xml文件夾。

希望這位信息可以幫助別人

相關問題