大家好,
这应该是我忽略的一个非常简单的设置,但我目前正尝试将我使用 Glide(glideapps.com)构建的移动应用中嵌入 Discourse。
然而,当我尝试通过 WebView 组件嵌入时,系统提示我没有正确的访问权限。
我猜需要白名单域名,但我没能在设置中找到相关选项。
谢谢!
Wouter
大家好,
这应该是我忽略的一个非常简单的设置,但我目前正尝试将我使用 Glide(glideapps.com)构建的移动应用中嵌入 Discourse。
然而,当我尝试通过 WebView 组件嵌入时,系统提示我没有正确的访问权限。
我猜需要白名单域名,但我没能在设置中找到相关选项。
谢谢!
Wouter
您可以在“管理 >> 自定义 >> 嵌入”中尝试设置白名单。不过我不确定 Glide 具体在做什么。Discourse 完全可以正常运行在普通的 WebView 中(例如,我们自己的 DiscourseHub iOS 应用就使用了 WebView)。
嗯,试过了,但没有成功。
顺便提一下,这会不会是因为我使用的是试用账户,并且是在你们托管的解决方案上?
还是说这不应该成为问题?
你好,Penar,
是的,我正是这样做的。它们在 WebView 中都无法运行。我会尝试与 Glide 一起解决这个问题。
感谢你的反馈!
你好,Penar,
我收到了 Glide 关于此问题为何无法运行的反馈。
“如果你将那个网址(https://community.pelvic.app/)放入这个工具,它会显示该网站设有阻止其在 iframe 中运行的设置。WebView 本质上就是 iframe 的封装。”
前半部分说法是正确的:默认情况下,我们会阻止将 Discourse 站点加载到 iFrame 中。这能保护您的站点免受多种风险,包括 SEO 操纵和点击劫持(详见此帖)。
不过后半部分有些奇怪:Webview 绝对不是 iFrame。Webview 是嵌入在移动应用中的微型浏览器,其行为与真实浏览器无异。而 iFrame 是一种在网页内加载另一个网页的方式。我猜整个 Glide 应用本质上就是一个网页,因此他们可能是在 Webview 内部使用了 iFrame?
我们提供了一个站点设置,可以切换以允许将您的站点嵌入到 iFrame 中,但我们不建议这样做,因为 Discourse 在 iFrame 中存在一些特殊问题。换句话说,我们可以为您启用 iFrame 嵌入功能,但未来可能会出现无法修复的问题。
感谢 Penar。我将把这个问题带回 Glide,看看是否有简单的解决方法。
你好,Penar,
目前我们不需要开启这个功能。但为了完善这个话题,供日后阅读此内容的人参考,以下是来自 Glide 的反馈:
我们使用 iframe 来驱动我们的 WebView。这是在网页浏览器中实现该功能的唯一方式。他说得对,出于安全考虑,许多网站会阻止这种做法,但这确实是我们目前在 Web 端能做的最佳方案。
Discourse 社区可能误以为我们具备原生应用的 WebView 能力,当然,我们无法使用原生应用的功能。
在此说明一下:Glide 是一个渐进式 Web 应用(PWA),而非原生应用。
感谢你的帮助。