我有一个带有角度引导的Cordova应用程序在'deviceready'上踢。
我的谷歌地图链接如下:
<script src="https://maps.googleapis.com/maps/api/js"></script>
如果应用程序以数据设置为关闭开始,则显然脚本将丢失。
如果用户打开数据,我该如何初始化Google地图?我必须重启应用程序吗?我试过通过'document'注入脚本,但是错误消息说不允许这样做。
非常欢迎任何帮助或提示。
干杯
戴尔
答案 0 :(得分:0)
基本上,此代码将检查在角度控制器中构建地图时是否加载了谷歌地图api库,如果没有,请尝试获取。
//already loaded build the map
if ($window.google && $window.google.maps) {
prepareMap();
} else { //not loaded
//create a promise object
var mapScriptPromise = getMapScript();
mapScriptPromise.then(function(){
prepareMap(); //now you can build the map
});
}
//create the hook for the file and return the deferred promise
function getMapScript() {
var deferred = $q.defer();
var script = document.createElement('script');
//script callback
$window.initMap = function() {
deferred.resolve();
}
script.src = "https://maps.googleapis.com/maps/api/js?sensor=true&callback=initMap";
document.body.appendChild(script);
return deferred.promise;
}
//add your map settings here i.e.
function prepareMap() {
var map = new google.maps.Map(mapCanvas, mapOptions);
...
}