Probablemente sea una configuración muy sencilla que se me está escapando, pero actualmente estoy intentando incrustar Discourse en una aplicación móvil que he creado en Glide (glideapps.com).
Sin embargo, cuando intento incrustarlo a través de un componente WebView, me dice que no tengo los permisos adecuados.
Supongo que tengo que añadir el dominio a la lista de permitidos, pero no logro encontrarlo en la configuración.
Puedes probar a añadirlo a la lista blanca en Administración > Personalizar > Incrustación. Sin embargo, no estoy seguro de qué está haciendo Glide; Discourse puede funcionar perfectamente en una vista web regular (por ejemplo, nuestra propia aplicación DiscourseHub para iOS utiliza una vista web).
Eso no debería ser un problema. Acabo de probar tu sitio en la aplicación DiscourseHub y carga correctamente allí. Esto parece ser un problema de Glide y veo que tienes un ticket abierto allí, así que espero que puedan ayudarte.
También puedes probar a incrustar otros sitios, por ejemplo, Meta, o la comunidad de Glide (que también se ejecuta en Discourse). Si ninguno de ellos funciona, entonces definitivamente es un problema del lado de Glide (ya sea un error en Glide o un problema con la forma en que estás implementando esto).
Recibí algunos comentarios de Glide sobre por qué no está funcionando.
“Si colocas esa URL (https://community.pelvic.app/) en esta herramienta, indica que tiene configuraciones que impiden que se ejecute en un iFrame. Webview es un contenedor para un iFrame.”
La primera parte es correcta: por defecto, bloqueamos la carga de sitios Discourse en iframes. Esto protege tu sitio de diversos riesgos, desde trucos de SEO hasta clickjacking (consulta esto para más detalles).
Sin embargo, la segunda parte es extraña: las webviews definitivamente no son iframes. Las webviews son mini-navegadores que pueden incrustarse en aplicaciones móviles y actúan como un navegador real. Un iframe es una forma de cargar una página web dentro de otra. Supongo que toda la aplicación Glide es esencialmente una página web, así que quizás están usando iframes dentro de la webview allí.
Tenemos una configuración de sitio que se puede activar para permitir que tu sitio se incruste en un iframe, pero no recomendamos hacerlo, ya que hay peculiaridades al usar Discourse dentro de un iframe. En otras palabras, podemos habilitar la incrustación en iframe para ti, pero podrían surgir problemas irremediables en el futuro.
No es necesario activar esto para nosotros en este momento. Pero para completar este tema, para cualquiera que lo lea más adelante, esto fue el feedback de Glide.
Utilizamos un iframe para impulsar nuestra WebView. Esta es la única forma en que podemos lograrlo en los navegadores web. Tiene razón en que muchos sitios lo bloquean por razones de seguridad, pero realmente es lo mejor que podemos hacer en la web.
Es probable que la comunidad de Discourse esté asumiendo la capacidad de WebView de las aplicaciones nativas, lo cual, por supuesto, no podemos utilizar.
Por cierto, Glide es una aplicación web progresiva, no una aplicación nativa.