Cordova OnsenUI App中的Google Maps V3(地图显示在浏览器中但不在手机上)

时间:2015-06-27 19:54:07

标签: javascript android google-maps cordova google-maps-api-3

我正在尝试在使用 OnsenUI Cordova App 中显示if( " ".equals((contents.charAt(i2)+"") ) 。当我将它运行到浏览器中时会显示Google Map,但是当我在实际的手机中运行它时,它会显示空白屏幕而不是显示地图。

我已经经历了很多其他帖子,但这里的问题似乎有所不同。这是代码:

Google Map V3

在上面的代码中,执行进入超时功能并显示:

//Map initialization  
$timeout(function(){
    alert('Inside Time Out for Google Map');
    var latlng = new google.maps.LatLng(35.7042995, 139.7597564);
    var myOptions = {
        zoom: 8,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    alert('Google Map almost loaded');
    $scope.map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    $scope.overlay = new google.maps.OverlayView();
    $scope.overlay.draw = function() {}; // empty function required
    $scope.overlay.setMap($scope.map);
    $scope.element = document.getElementById('map_canvas');

},100);

alert('End of MapController');

但遇到这一行时:

alert('Inside Time Out for Google Map');

然后执行不会继续。

我在Cordova config.xml文件中添加了这些访问权限:

var latlng = new google.maps.LatLng(35.7042995, 139.7597564);

任何想法,为什么会这样?

1 个答案:

答案 0 :(得分:3)

我发现了这个问题。问题出在 Cordova config.xml文件:

我创建了一个新的Cordova项目,并将www文件夹放在我的更改中,并且它有效。

我们需要在config.xml文件中添加这些配置。仅添加<access...>在我的情况下不起作用:

<plugin name="cordova-plugin-whitelist" version="1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
    <allow-intent href="market:*" />
</platform>
<platform name="ios">
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />
</platform>

自从过去18个小时以来我一直在努力,终于找到了办法。我希望它也会帮助别人。