HTML图像地图不适用于iOS,因为10.3

问题描述:

所以我有一个UIWebView的应用程序,基本上包含带图像映射的图像作为自定义导航的一种形式。直到iOS 10.2.x这个工作正常,但自10.3.1以来,我的用户一直在报告说,单击图像映射扇区不再工作。HTML图像地图不适用于iOS,因为10.3

我已经在应用程序中测试了这个以及iOS Safari中的HTML文件,并且似乎确实图像映射不再有效。它在Mac上仍然可以在Safari上运行,但对我来说这没用。

其他图像地图工作,例如this w3schools上的图像地图。我的怎么了?

我可以做什么改变,使图像地图再次工作?

这是我使用的图像映射的HTML:

<!DOCTYPE html> 

<html lang="en" xmlns="http://www.w3.org/1999/xhtml" style="width:100%; height:100%;"> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, shrink-to-fit=YES"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <title></title> 
</head> 
<body> 
    <p> 
     <img name="triangle" src="triangle.png" usemap="#m_trianglemap" /> 
    </p> 
    <map name="m_triangleMap"> 
     <area alt="activity" title="" href="activity" shape="poly" coords="1,389,491,390,447,325,42,325"/> 
     <area alt="water" title="" href="water" shape="poly" coords="82,258,41,323,447,325,399,261" /> 
     <area alt="carbs" title="" href="carbs" shape="poly" coords="122,190,80,257,398,257,352,191" /> 
     <area alt="vegetables" title="" href="vegetables" shape="poly" coords="123,190,247,191,246,131,161,129" /> 
     <area alt="fruit" title="" href="fruit" shape="poly" coords="249,191,355,192,317,131,247,131" /> 
     <area alt="dairy" title="" href="dairy" shape="poly" coords="160,127,243,129,242,65,199,66" /> 
     <area alt="meat" title="" href="meat" shape="poly" coords="245,130,315,131,271,64,244,65" /> 
     <area alt="fat" title="" href="fat" shape="poly" coords="217,39,201,64,273,65,258,41" /> 
     <area alt="rest" title="" href="rest" shape="poly" coords="237,3,220,31,254,31" /> 
     <area alt="general" title="" href="general" shape="poly" coords="156,25,55,25,55,120,151,120" /> 
    </map> 
</body> 
</html> 
+0

我能想到的唯一选择是html5的[canvas](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)。 – Pyromonk

所以我想通了,什么是错的我的图像映射代码。

如果您查看原始文章中包含的代码,您会看到我的usemap为#m_trianglemap,而地图名称为m_triangleMap,基本上只是不同的套管。在10.3.1之前的所有其他浏览器和Safari iOS上,usemap不区分大小写。现在它是区分大小写的。一旦我改变了usemap的值来匹配大小写中的名字,它就再次开始工作。