Google应用脚本:如何确定屏幕分辨率?

时间:2012-10-06 13:18:09

标签: google-apps-script resolution

我正在尝试在Google应用脚本中创建应用,但我希望根据屏幕的分辨率(移动和桌面)显示不同的布局。但是,我找不到任何关于如何确定屏幕分辨率的信息。

当然我无法从服务器端确定屏幕分辨率,所以我尝试了如果我可以对客户端处理程序做一些事情,但是ClientHandlers没有任何屏幕解析方法。我还尝试使用app.createHTML()向应用添加手动客户端脚本,但Google不允许使用createHTML包含javascript。

那么如何使用Google应用脚本获取浏览器的分辨率呢?

2 个答案:

答案 0 :(得分:6)

JavaScript screen.witdth属性在GAS环境中不起作用。

引发了谷歌Caja消毒剂,它位于GAS的引擎盖下
  

未捕获的脚本错误:'屏幕未定义。'来源:   ' tryit.asp文件名= tryjsref%5fscreen%5fwidth&#39?;在线:7   tryit.asp?filename = tryjsref%5fscreen%5fwidth:7:屏幕未定义。

如果要将以下HTML页面加载到Caja Playground,则会出现

异常。可能这是Caja的一个问题。

<!DOCTYPE html>
<html>
<body>

<script>

document.write("Test");
document.write("Total Width: " + screen.width);

</script>

</body>
</html>

可能的解决方法是不依赖于屏幕分辨率而是使用用户代理字符串。该字符串包含用户浏览器&#34; id&#34;。 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)...。检查过程在返回的字符串中搜索单词MobileAndroid等。如果其中一个发现它是移动平台,并且主代码使用相对控件大小绘制移动GUI。以下代码显示了如何使用它

function doGet(e) {
  var app = UiApp.createApplication();
  app.add(app.createLabel(UiApp.getUserAgent()));
  return app;
}

答案 1 :(得分:1)

目前没有已知的方法来执行此UI应用程序。但是,在Google Apps脚本中使用HtmlService(而不是您提到的createHTML()),您可以添加JavaScript并在JavaScript,HTMl和CSS中构建整个UI。

请参阅https://developers.google.com/apps-script/class_htmlservice了解文档