如何在运行时更改应用程序图标?

时间:2015-11-06 10:34:52

标签: gwt

我需要在运行时根据品牌更改favicon。当应用程序启动时,我调用webservice来建立品牌,然后我需要配置应用程序。我不知道如何更新图标 - 是否可能?

<link rel="shortcut icon" href="favicon-brand1.ico">

为了澄清我需要的背景 - 我的应用程序是一个GWT应用程序,要求是在完成加载之前根据域名(品牌)配置其外观。所以我已经实现了Web服务,它为我提供了所有配置数据,如站点名称,站点描述(放置在元描述中的主机HTML页面)和相关的favicon。 我能够更新我的应用程序的元标记,但我找不到如何从GWT代码更新应用程序图标而不是使用JavaScript代码的解决方案。

2 个答案:

答案 0 :(得分:1)

您可以访问主页上的任何标记。

所以这样的事情应该有效:

NodeList<Element> nodes = Document.get().getElementsByTagName("link");
for (int i = 0; i < nodes.getLength(); i++) {
  LinkElement link = LinkElement.as(nodes.getItem(i));
  if (link.getRel("shortcut icon") != null) {
    link.setHRef("favicon-brandNew.ico");
  }
}

答案 1 :(得分:0)

我不确定你的应用程序的上下文,但我想如果你的动态生成就会发生正确的事情。

我的意思是在模型属性中指定文件名,并在视图中使用它。

所以,不要硬编码 - 查一查。

所以你最终会得到一些...... ....

<link rel="shortcut icon" href="@model.BrandFavIcon">