2015-04-21 83 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中找到它們。星號(*)可以(並且必須)用作通配符,這裏用於支持動態子域。

相關問題