我可以让谷歌地图在浏览器中显示没有问题.当我使用phonegap构建打包我的应用程序时,它不起作用.在我的远程调试会话中,它说
https://maps.googleapis.com/maps/api/js?key=My_Key_Goes_Here Failed to load resource: the server responded with a status of 404 (Not Found)
在我的文档的负责人:
在网络控制台中,我得到:
Request URL:http://maps.googleapis.com/maps/api/js?key=MyKeyHere Request Method:GET Status Code:404 Not Found (from cache) Response Headers Client-Via:shouldInterceptRequest Request Headers Provisional headers are shown Accept:*/* User-Agent:Mozilla/5.0 (Linux; Android 5.0.2; SM-T530NU Build/LRX22G; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/46.0.2490.76 Safari/537.36 Query String Parameters view source view URL encoded key: MyKeyDisplayedHere
在我的config.xml文件中,我包含以下行:
我正在使用jQuery Mobile,我没有在第一页上显示地图而是在另一页上显示地图.无论如何,它在尝试从API获取时会给出404,但这里是locations.js文件中的JS代码:
$(document).on('pageshow', "#map-page", function() { var defaultLatLng = new google.maps.LatLng(34.0983425, -118.3267434); // Default to Hollywood, CA when no geolocation support if ( navigator.geolocation ) { function success(pos) { // Location found, show map with these coordinates drawMap(new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude)); } function fail(error) { drawMap(defaultLatLng); // Failed to find location, show default map } // Find the users current position. Cache the location for 5 minutes, timeout after 6 seconds navigator.geolocation.getCurrentPosition(success, fail, {maximumAge: 500000, enableHighAccuracy:true, timeout: 6000}); } else { drawMap(defaultLatLng); // No geolocation support, show default map } function drawMap(latlng) { var myOptions = { zoom: 10, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions); console.log('hey'); // Add an overlay to the map of current lat/lng var marker = new google.maps.Marker({ position: latlng, map: map, title: "Greetings!" }); } });
我也尝试将API的href更改为"http"而不是"https"
经过一番挖掘,我在这里找到了一些文档:
显然你必须添加白名单插件而不是原生插件,所以我将config.xml文件更改为:
它现在可以在移动应用程序中使用,我也可以使用我白名单的外部资源.