Probabilmente è una semplice impostazione che mi sto perdendo, ma al momento sto cercando di incorporare Discourse in un’app mobile che ho creato con Glide (glideapps.com).
Tuttavia, quando provo a incorporarlo tramite un componente WebView, mi dice che non ho i diritti di accesso corretti.
Immagino di dover mettere in whitelist il dominio, ma non riesco a trovarlo nelle impostazioni.
Puoi provare a inserire l’elenco bianco in Admin >> Personalizza >> Incorporamento. Non sono sicuro di cosa stia facendo Glide, ma Discourse può funzionare perfettamente in una webview regolare (ad esempio, la nostra stessa app DiscourseHub per iOS utilizza una webview).
Non dovrebbe essere un problema. Ho appena provato il tuo sito sull’app DiscourseHub e si carica correttamente lì. Sembra un problema di Glide e vedo che hai già aperto un ticket a riguardo, quindi speriamo che possano aiutarti.
Puoi anche provare a incorporare altri siti, ad esempio Meta o la community di Glide (che funziona anch’essa su Discourse). Se nessuno di questi funziona, allora il problema è sicuramente lato Glide (un bug di Glide o un problema nel modo in cui stai implementando questa funzionalità).
Ho ricevuto un feedback da Glide sul motivo per cui non funziona.
“Se inserisci quell’URL (https://community.pelvic.app/) in questo strumento, indica che ha impostazioni che impediscono l’esecuzione in un iFrame. Webview è un contenitore per un iFrame.”
La prima parte di questa affermazione è corretta: per impostazione predefinita, blocchiamo il caricamento dei siti Discourse all’interno di iframe. Questo protegge il tuo sito da una varietà di rischi, dai trucchi SEO al clickjacking (vedi questo per ulteriori dettagli).
La seconda parte è però strana: le WebView non sono affatto iframe. Le WebView sono mini-browser che possono essere incorporati nelle app mobili e si comportano come veri e propri browser. Un iframe è un modo per caricare una pagina web all’interno di un’altra pagina web. Immagino che l’intera app Glide sia essenzialmente una pagina web, quindi forse lì stanno utilizzando iframe all’interno della WebView?
Disponiamo di un’impostazione del sito che può essere attivata per permettere l’incorporamento del tuo sito in un iframe, ma non consigliamo di farlo, e ci sono delle stranezze nell’utilizzo di Discourse all’interno di un iframe. In altre parole, possiamo abilitare l’incorporamento tramite iframe per te, ma potrebbero sorgere problemi irrisolvibili in futuro.
Non è necessario attivare questa opzione per noi al momento. Ma per completare questo argomento, per chiunque legga in un secondo momento. Questo è il feedback ricevuto da Glide.
Utilizziamo un iframe per gestire il nostro WebView. È l’unico modo per farlo funzionare nei browser web. Ha ragione nel dire che molti siti lo bloccano per motivi di sicurezza, ma è davvero la soluzione migliore che possiamo adottare sul web.
La community di Discourse sta probabilmente dando per scontata la funzionalità WebView delle app native, che ovviamente non possiamo utilizzare.
Per la cronaca: Glide è una progressive web app, non un’app nativa.