LANG SELRCT

コードを書く場所についてはこちら

2018年11月1日木曜日

HTML Serviceで作ったWebアプリの上部に表示されるバナーについて


ここでいうバナーとは

「このアプリケーションは、Google ではなく、別のユーザーによって作成されたものです。」

2017年からGoogleAppsScriptでHTMLページを作成すると必ず最上部に表示されるようになったこのバナーです。



これを消せないかいろいろ試してみたところ、表示されたバナーを消す方法は現状存在しないようでした。

しかし、バナーが表示されないパターンが2つありました。
  1. Gsuiteのドメイン内で使う
  2. 外部のHTMLファイルの中でiframeで読み込む

以下にissueが上がっていて、その中でも同じ方法が語られていました。
https://issuetracker.google.com/issues/63521070#comment4


以下は備忘録として書き残しておきます。

1つ目はGsuiteを使っている場合で、ドメイン内であれば何もしなくてもバナーは表示されないため社内でアプリを共有する場合は特に意識しなくても良さそうです。

もしそのアプリをドメイン外にも共有している場合、ドメイン外からアクセスした人のブラウザにはバナーが表示されます。


2つ目はiframeで読み込む方法で、GoogleAppsScriptのHTML Service以外の場所にhtmlを作って、その中のiframeのsrcにWebアプリのURLを指定してあげます。

その際はiframeで表示できるように .gs側でXFrameOptionsMode.ALLOWALL を設定する必要があります。

このように

コード.gs
function doGet() {
  var output = HtmlService.createHtmlOutputFromFile('index');
  output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
  return output;
}



index.html
<!DOCTYPE html>
<html>
  <body>
    <textarea></textarea>
  </body>
</html>
意訳
 


テキストエリア




上記をWebアプリとして公開して、別のhtmlのiframeに読み込ませる
これはGoogleAppsScriptではなく別途ホームページなどを用意する必要がある

another.html
<!DOCTYPE html>
<html>
  <body>
    <iframe src="GoogleAppsScriptで作ったWebAppの公開URL"></textarea>
  </body>
</html>


参考

setXFrameOptionsMode(mode)
https://developers.google.com/apps-script/reference/html/html-output#setXFrameOptionsMode(XFrameOptionsMode)


issuetracker
https://issuetracker.google.com/issues/63521070#comment4

stackoverflow
https://stackoverflow.com/questions/44970940/how-to-remove-warning-this-application-was-created-by-another-user-not-by-goog