您可以自己编写代码或使用现有解决方案。
做它自己的算法
- 查找代码中的苹果触摸图标的声明,如
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
。这些图片的范围从57x57到152x152。请参阅Apple specs以获取完整参考。
- 即使您找不到Apple触摸图标声明,仍尝试根据Apple命名约定加载它们。例如,你可能会在
/apple-touch-icon.png
找到一些东西。再次参见Apple specs以供参考。
- 在代码中寻找高清PNG图标,例如
<link rel="icon" type="image/png" href="/favicon-196x196.png" sizes="196x196">
。在这个例子中,你有一张196x196的图片。
- 寻找Windows 8/IE10和Windows 8.1/IE11平铺图片,例如
<meta name="msapplication-TileImage" content="/mstile-144x144.png">
。这些图片的范围从70x70到310x310,甚至更多。请参阅这些Windows 8和Windows 8.1参考。
- 寻找
/browserconfig.xml
,致力于Windows 8.1/IE11。这是另一个你可以找到平铺图片的地方。见Microsoft specs。
- 查找
og:image
声明,如<meta property="og:image" content="http://somesite.com/somepic.png"/>
。这是一个网站如何表示FB/Pinterest /无论表示它的首选图片。请参阅Open Graph Protocol以供参考。
- 在这一点上,你发现没有合适的标志......该死!你仍然可以加载页面中的所有图片,并猜测选择最好的一张。
注意:第1步,第2步和第3步基本上是Chrome为书签和主屏幕链接获取适当图标的操作。通过歌剧海岸甚至使用MS瓷砖图片完成工作。阅读此列表以找出which browser uses which picture(完全披露:我是本页的作者)。
API和开源项目
RealFaviconGenerator:你可以得到这个favicon retrieval API任何网站图标或相关图标(如触摸图标)。充分披露:我是这项服务的作者。
BestIcon:虽然不太全面,但Besticon提供了一个很好的选择,特别是如果你想自己托管代码。还有一个你可以立即使用的hosted version。
火狐需要经常访问的网页截图,并安排他们作为起始页面的缩略图。我认为这是最好的方法。除此之外,除了favicon外,没有标准化的方式。您可以扫描标题区域的页面,并尝试查找其中通常最左侧最大的图像,这应该是网站的徽标。您可以分析最流行的CMS和博客软件,以了解一些常见的徽标标记或排列模式。这也是相关的:http://googlewebmastercentral.blogspot.com/2013/05/using-schemaorg-markup-for-organization.html – tiguchi
@Nobu,我可以从webView获取快照,但问题是,当我们显示多个在移动设备上拍摄快照没有多大意义。此外,我必须保存移动设备上所有访问页面的快照。如果在大多数情况下最左边最大的图像可能是标志,我会尝试。 – Harish
你需要浏览器历史列表的这些标志或图标吗?您仍然可以裁剪和缩小这些屏幕截图,并创建与Android任务切换器类似的视觉效果。但是,如果徽标检测适用于您,那也很好。如果浏览器无法检测到徽标,则只需要某种回退行为 – tiguchi