Google Apps Script CardService.setContent as HTML



我正在我的Google Scripts Adds-On中使用CardService。我正在尝试setContent为 HTML,因为我正在从 Index.html 中读取它。但是在渲染时,它将CSSJavascript打印为文本,而不是在HTML内容中使用它。

function buildPage() {
  var html = HtmlService.createHtmlOutputFromFile('Index').getContent();
  var card = CardService.newCardBuilder();
  card.setHeader(CardService.newCardHeader().setTitle('How do you feel ...'));
  var section = CardService.newCardSection()
    .setHeader("<h4>What do you want? </h4>");
  section.addWidget(CardService.newKeyValue()
    .setTopLabel('choose one')
    .setContent(html)
);

这是我Index.html

    <!DOCTYPE html>
    <html>
     <head>
      <base target="_top">
       <style>
           #things {
             position: absolute;
             top: 50%;
             left: 50%;
             color: green;
             margin-right: -50%;
             text-align: center;
          }
       </style>
     </head>
     <body>
       <p>List of things:</p>
       <ul id="things">
         <li>Loading...</li>
       </ul>
       <script
         src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
       </script>
       <script>
       // The code in this function runs when the page is loaded.
       $(function() {
        google.script.run.withSuccessHandler(showThings)
        .getLotsOfThings();
       });
       function showThings(things) {
         var list = $('#things');
         list.empty();
         for (var i = 0; i < things.length; i++) {
           list.append('<li>' + things[i] + '</li>');
         }
      }
      </script>
     </body>
   </html>

GMail Add-Ons只支持非常基本的html样式。

见 https://developers.google.com/gmail/add-ons/concepts/widgets#text_formatting

setContent()接受文本并支持基本的HTML格式。我认为它不支持完整的 html 标签,如样式、脚本等

参考https://developers.google.com/apps-script/reference/card-service/key-value#setcontenttext

最新更新