剛接觸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文件更改爲此
- 資產/ WWW/config.xml中
我已經改變了index.html文件旁邊的一個,並且不知道res/xml中的其他位置。在index.html文件的上方有一個res文件夾,我查看並沒有看到一個xml文件夾。
希望將這些信息位幫助別人
你的config.xml中有嗎? –
我檢查了Chrome和FF代碼,它的工作原理沒有問題。你的鑰匙呢?你有啓用它的android?我使用'google.maps.event.addDomListener(window,'load',getPos);'進行初始化,而不是第一行腳本。 –