我正在尝试在Google应用脚本中创建应用,但我希望根据屏幕的分辨率(移动和桌面)显示不同的布局。但是,我找不到任何关于如何确定屏幕分辨率的信息。
当然我无法从服务器端确定屏幕分辨率,所以我尝试了如果我可以对客户端处理程序做一些事情,但是ClientHandlers
没有任何屏幕解析方法。我还尝试使用app.createHTML()
向应用添加手动客户端脚本,但Google不允许使用createHTML包含javascript。
那么如何使用Google应用脚本获取浏览器的分辨率呢?
答案 0 :(得分:6)
JavaScript screen.witdth属性在GAS环境中不起作用。
引发了谷歌Caja消毒剂,它位于GAS的引擎盖下如果要将以下HTML页面加载到Caja Playground,则会出现未捕获的脚本错误:'屏幕未定义。'来源: ' tryit.asp文件名= tryjsref%5fscreen%5fwidth&#39?;在线:7 tryit.asp?filename = tryjsref%5fscreen%5fwidth:7:屏幕未定义。
异常。可能这是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)...
。检查过程在返回的字符串中搜索单词Mobile
,Android
等。如果其中一个发现它是移动平台,并且主代码使用相对控件大小绘制移动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了解文档