如何从跨源站点中框架的谷歌应用脚​​本 webapp 访问相机?

Posted

技术标签:

【中文标题】如何从跨源站点中框架的谷歌应用脚​​本 webapp 访问相机?【英文标题】:How to access camera from google apps script webapp framed in a cross origin site? 【发布时间】:2021-11-26 02:22:59 【问题描述】:

我的页面上有一个 iframe。 iframe src 是一个 src="https://script.google.com/macros/s/......." 的 google webapp。

该页面是一个表单,它适用于相机和地理定位。 我的问题是,当我不加框直接访问表单时,它可以正常工作,但是当我为应用程序脚本 web 应用程序加框时,表单可以工作,但相机和地理却不行。

我的意思是:如果我使用https://script.google.com/macros/s/...。形式完美! 但是如果我在我的网页上使用 iframe,相机和地理就不起作用了! <iframe src="https://script.google.com/macros/s/......."></iframe> 我尝试添加allow="camera; microphone 和其他属性,但仍然没有工作。

我该如何解决?

这里是我的链接 框架: iframe 允许="相机 *; 麦克风 *" src="https://script.google.com/macros/s/AKfycbzsaOlh4Gp2EJmdyQ9cvkYmezTCsg_9wd6ILjdwTe6MRgNBDitcE5Hijr2sNeBknMvp/exec" frameborder="0" margin margin id="cultos" name="cultos">/iframe

链接脚本 https://script.google.com/macros/s/AKfycbzsaOlh4Gp2EJmdyQ9cvkYmezTCsg_9wd6ILjdwTe6MRgNBDitcE5Hijr2sNeBknMvp/exec 注意:链接脚本工作 100%,但在 iframe 上没有工作相机和地理定位

【问题讨论】:

浏览器控制台或开发工具上有任何错误/调试日志吗? 不,只是 GET xxxxx/favicon.ico 404,没有图标 表单在 url 脚本和 iframe 上工作完美,但相机和地理在 iframe 上不起作用 我有这个错误 访问 XMLHttpRequest at 'script.google.com/wardeninit?_reqid=80444&rt=j' from origin 'null' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:否 'Access-Control -Allow-Origin' 标头出现在请求的资源上。 还有这个 1453801117-warden_bin_i18n_warden__es.js:157 POST script.google.com/wardeninit?_reqid=80444&rt=j net::ERR_FAILED 【参考方案1】:

由于 Google Apps 脚本网络应用是 nested iframe with different origins,您可能需要添加特定的 allowlist along with allow.。这是因为默认allowallowlist 默认为src。因此它不允许嵌套的跨源 iframe。试试

<iframe src="https://script.google.com/macros/s/......." 
        allow="camera https://[SCRIPT_ID].googleusercontent.com"></iframe>

这里,SCRIPT_ID 可以通过根据结构here 检查“#1 Outer sandbox iframe”html 结构找到。或者不太安全,您可以使用* 允许所有来源,

<iframe src="https://script.google.com/macros/s/......." 
        allow="camera *"></iframe>

【讨论】:

谢谢测试它, @AsambleaCristiana 有用吗?添加*work?(allow="camera *") 不,如果你能帮助我,这里是我的链接!永远谢谢!,asambleacristianamendoza.com/index.php/inscripciones-maipu 这是嵌入代码 这是我的应用链接script.google.com/macros/s/… 如果你使用 url 链接工作 100%!,但如果你使用 throught iframe 没有工作相机和地理定位 @AsambleaCristiana 这是在 chrome 中吗?

以上是关于如何从跨源站点中框架的谷歌应用脚​​本 webapp 访问相机?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌应用脚​​本从 gmail 中删除特定附件

如何在谷歌应用脚​​本中将段落 html 字符串转换为没有 html 标签的纯文本?

如何使用谷歌应用脚​​本发送电子邮件草稿

使用谷歌应用脚​​本更新数据验证规则时如何保留原始范围

如何使用谷歌应用脚​​本找到最后一列?

谷歌应用脚​​本没有循环