You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gmail Add-on中显示带图标的装饰文本?旧代码失效求助

解决Gmail Add-on中DecoratedText图标不显示的问题

问题分析

你当前代码中使用setIconUrl()加载外部图标失效,大概率是因为Gmail插件的CardService对外部资源的访问限制,或是API更新后对自定义图标URL的校验规则变严格导致的。

解决方案

方案1:使用CardService内置图标(推荐)

Google提供了一套内置的Material Design图标,通过setIcon()方法调用,无需依赖外部链接,稳定性更高。

修改后的代码示例:

var card = CardService.newCardBuilder();
var section = CardService.newCardSection();
var htmlContent = 'Add Card';
var decoratedText = CardService.newDecoratedText()
  .setText(htmlContent)
  .setOnClickAction(CardService.newAction().setFunctionName("showFirstCard"))
  .setIcon(CardService.Icon.ADD); // 使用内置图标

section.addWidget(decoratedText);
card.addSection(section);
return card.build();

你可以根据需求替换为其他内置图标,比如CardService.Icon.EDIT、CardService.Icon.DELETE等,完整的内置图标列表可参考Google Workspace开发者文档中的Icon枚举。

方案2:修复自定义图标URL的访问问题

如果必须使用自定义图标,需要确保:

  • 图标URL是公开可直接访问的,没有防盗链、登录验证等限制
  • 图标格式为PNG/JPG,尺寸建议为24x24px(符合插件UI规范)
  • 可以尝试将图标上传至Google Drive,设置为“公开到互联网”,并获取文件的直接下载链接(注意不是共享链接,需要转换为可直接访问的格式)

调整后的自定义图标代码示例:

var decoratedText = CardService.newDecoratedText()
  .setText(htmlContent)
  .setOnClickAction(CardService.newAction().setFunctionName("showFirstCard"))
  .setIconUrl("替换为可直接访问的图标URL");

内容的提问来源于stack exchange,提问作者Avula Vijay Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:06:01