JavaScriptのscreen.witdthプロパティは、GAS環境では機能しません。GASの内部にあるGoogleCaja消毒剤は、
キャッチされないスクリプトエラー:「画面が定義されていません。」ソース内:'tryit.asp?filename = tryjsref%5fscreen%5fwidth'行:7 tryit.asp?filename = tryjsref%5fscreen%5fwidth:7:画面が定義されていません。
次のHTMLページをCajaPlaygroundにロードする場合の例外。おそらくそれはCajaの問題です。
<!DOCTYPE html>
<html>
<body>
<script>
document.write("Test");
document.write("Total Width: " + screen.width);
</script>
</body>
</html>
考えられる回避策は、画面の解像度に依存するのではなく、ユーザーエージェント文字列を使用することです。この文字列には、ユーザーブラウザ「id」が含まれています。UiApp.getUserAgentメソッドはそれを返します。たとえば、デスクトップ上のMozilla Firefoxは、-のようなこの文字列を提供しますMozilla/5.0 (Windows NT 6.0; rv:15.0) Gecko/20100101 Firefox/15.0.1,gzip(gfe)
。携帯電話では、この文字列には。が含まれます...(Android; Mobile; rv:15.0)...
。チェックプロシージャは、返された文字列で単語Mobile
、Android
などを検索します。そのうちの1つがモバイルプラットフォームであることがわかった場合、メインコードは相対的なコントロールサイズを使用してモバイルGUIを描画します。次のコードはそれを使用する方法を示しています
function doGet(e) {
var app = UiApp.createApplication();
app.add(app.createLabel(UiApp.getUserAgent()));
return app;
}