谷歌应用程序脚本:如何确定屏幕分辨率



我正试图在谷歌应用程序脚本中创建一个应用程序,但我想根据屏幕的分辨率(移动和桌面)显示不同的布局。然而,我找不到任何关于如何确定屏幕分辨率的信息。

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

那么,我如何使用谷歌应用程序脚本获得浏览器的分辨率呢?

JavaScript screen.witdth属性在GAS环境中不起作用。GAS旗下的谷歌Caja消毒液抛出

未捕获的脚本错误:"未定义屏幕。"来源:'试用.asp?filename=第7行的tryjsref%5fscreen%5fwidthtryit.asp?filename=tryjsref%5屏幕%5宽度:7:未定义屏幕。

如果将以下HTML页面加载到Caja Playground,则出现异常。可能是卡贾的问题。

<!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)...。检查过程在返回的字符串中搜索单词MobileAndroid等。如果发现其中一个是移动平台,则主代码使用相对控件大小绘制移动GUI。下面的代码显示了如何使用它

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

目前还没有已知的方法来实现这个UI应用程序。然而,在Google Apps Script中使用HtmlService(而不是您提到的createHTML()),您可以添加JavaScript并用JavaScript、HTM1和CSS构建整个UI。

请参阅https://developers.google.com/apps-script/class_htmlservice用于文件

最新更新