2015-04-21 47 views
2

我正在建立一个流星/科尔多瓦应用程序,由一个模板与传单地图,其中瓷砖和图标由地图盒提供(我不知道如果这是相关的)。传单地图瓷砖不加载流星科尔多瓦应用程序

该应用使用的是bevanhunt:leaflet包,并且在Web浏览器上部署时运行良好。

var map; //outside of the template 

Template.map.rendered = function() { 
    L.Icon.Default.imagePath = 'images'; 

    if (!map) { 
     map = L.map('map', { 
      doubleClickZoom: false, 
      zoomControl: false 
     }); 
    } 

    var attributionText = "<a href='http://zencity.io/' target='_blank'>ZenCity &copy; </a>" + 
    "<a href='https://www.mapbox.com/about/maps/' target='_blank'> Mapbox &copy;" + 
    " OpenStreetMap</a>"; 

    L.tileLayer('https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png', { 
     maxZoom: 18, 
     attribution: attributionText, 
     id: 'someID' 
    }).addTo(map); 
    //some code to put makers on the map 
} 

我应该说,标记/弹出窗口出现细小(但他们的图像不存在;一个小问题,我会尽量照顾那个),但地图似乎没有初始化。

我需要在Template.map.rendered代码之外创建地图吗? 我是否需要添加配置以使传单/ mapbox能够与Cordova/android一起使用?

任何帮助,将不胜感激在这里。

+0

你可以检查图像请求是否被发送? – MarcoL

+0

我该如何有效地做到这一点? - 在跑步时很烦? – idoivri

+0

回答我自己:是的,--verbose。我得到:错误白名单拒绝:url ='https://c.tiles.mapbox.com/v3/idoivri。 /16/39178/26659.png' – idoivri

回答

1

Meteor 1.0.4 introducedApp.accessRule设置为mobile-config.js。您需要添加的URL瓷砖供应商,以这样的:

App.accessRule('https://*.tiles.mapbox.com/*'); 

基本上,出于安全原因,科尔多瓦的应用程序可能无法连接到任何他们喜欢的URL。这就是这个白名单所使用的。它限制可以加载哪些URL内容。由于平铺网址与您的应用网址不同,因此默认情况下会被拒绝。使用App.accessRule设置,您允许其他网址。 Android和iOS支持的域模式略有不同,您可以在the official docs中找到它们。星号(*)可以(并且必须)用作通配符,这里用于支持动态子域。

相关问题