我的PWA(使用Leaflet 1.5.1)目前在Android和iOS上运行(自2年以来),直到iOS 12发布为止,都没有问题。从那时起,我在iPhone和iPad上遇到了非常奇怪的问题。
主要问题是图像叠加层无法在iOS设备上完全呈现。
我正在设置一系列覆盖:
ovl = loadOverlay(url);
overlay.push(ovl);
其中loadOverlay()
是:
function loadOverlay(imgurl) {
bounds = new L.LatLngBounds(
new L.LatLng(30, -10),
new L.LatLng(50, 36)
);
var ovl = new L.ImageOverlay(imgurl,
bounds, {
pane: 'imagebg',
attribution: "my attribution"
});
return ovl;
}
然后,每个叠加层都以这种方式显示:
startMap() {
mymap = new L.Map('CopMap', {
maxZoom: 6.50,
minZoom: 4.75,
zoomSnap: 0.25,
zoomDelta: 0.25,
zoomControl: false,
maxBounds: [
//south west
[32.5, -4.],
//north east
[46.8, 31]
],
crs: L.CRS.Simple
});
mymap.attributionControl.setPrefix('');
mymap.createPane('imagebg');
mymap.getPane('imagebg').style.zIndex = 1;
mymap.addLayer(overlay[iDX]);
}
这在Android上运行良好,而在iOS中,图像并未完全呈现(并非总是呈现,但经常出现)。我检查了图像文件是否已正确下载到缓存中,但没有完全显示。