모바일 앱(Glide)에 Discourse 임베드하기

여러분, 안녕하세요.

아마 제가 놓치고 있는 아주 간단한 설정일 것 같은데, 현재 glide(glideapps.com)로 만든 모바일 앱에 discourse를 임베드하려고 하고 있습니다.

하지만 webview 구성 요소를 통해 임베드를 시도하면 올바른 접근 권한이 없다고 표시됩니다.

도메인을 화이트리스트에 추가해야 할 것 같은데, 설정에서 찾을 수가 없네요.

감사합니다!
Wouter

관리자 >> 사용자 지정 >> 임베딩에서 화이트리스트를 적용해 볼 수 있습니다. 다만 Glide가 정확히 어떤 작업을 수행하는지는 확실하지 않습니다. Discourse는 일반 웹뷰에서 완벽하게 정상적으로 작동할 수 있습니다(예를 들어, iOS용 자체 DiscourseHub 앱은 웹뷰를 사용하죠).

음. 시도해 봤지만 성공하지 못했습니다.

참고로, 제가 체험판 계정을 사용 중이고,贵公司의 호스팅 솔루션을 이용하고 있기 때문일까요?

아니면 그건 문제가 되지 않을까요?

이는 문제가 되지 않아야 합니다. 방금 DiscourseHub 앱에서 해당 사이트를 시도해 보았는데, 그곳에서는 정상적으로 로드됩니다. 이는 Glide의 문제로 보이며, Glide 커뮤니티에 티켓이 열려 있는 것을 확인했습니다. 따라서 그곳에서 도움을 받을 수 있기를 바랍니다.

또한 meta나 Glide 커뮤니티(이것도 Discourse로 운영됩니다) 등 다른 사이트를 임베드하여 시도해 볼 수도 있습니다. 아무것도 작동하지 않는다면, 이는 분명히 Glide 쪽의 문제(.Glide의 버그이거나 구현 방식에 문제가 있는 것)일 것입니다.

Penar님, 안녕하세요.

네, 정확히 그렇게 해보았습니다. 웹뷰에서는 아무것도 작동하지 않았습니다. Glide 쪽에서 직접 해결 방법을 찾아보겠습니다.

피드백 주셔서 감사합니다!

Penar님,

Glide 측에서 작동하지 않는 이유에 대한 피드백을 받았습니다.

“해당 URL(https://community.pelvic.app/)을 이 도구에 입력하면 iFrame에서 실행되지 않도록 설정되어 있다고 표시됩니다. Webview는 iFrame의 래퍼입니다.”

이 중 첫 번째 부분은 맞습니다. 기본적으로 우리는 Discourse 사이트가 iframe에서 로드되는 것을 차단합니다. 이는 SEO 트릭부터 클릭재킹(clickjacking)까지 다양한 위험으로부터 사이트를 보호하기 위한 것입니다(자세한 내용은 여기를 참조하세요).

하지만 두 번째 부분은 좀 이상합니다. Webview는 분명히 iframe이 아닙니다. Webview는 모바일 앱에 임베드할 수 있는 미니 브라우저로, 실제 브라우저처럼 작동합니다. 반면 iframe은 한 웹페이지 안에 다른 웹페이지를 로드하는 방법입니다. 아마도 Glide 앱 전체가 기본적으로 웹페이지이므로, webview 안에서 iframe을 사용하고 있는 것일까요?

사이트 설정에 iframe에 사이트를 임베드하도록 허용하는 토글이 있지만, 우리는 이를 권장하지 않으며 Discourse가 iframe 안에서 작동할 때 여러 가지 특이한 문제가 발생할 수 있습니다. 다시 말해, 우리는 iframe 임베드를 활성화해 드릴 수는 있지만, 나중에 해결할 수 없는 문제가 생길 수 있습니다.

Penar 씨, 감사합니다. 이 문제를 Glide 쪽으로 다시 전달해서 간단한 해결책이 있는지 확인해 보겠습니다.

Penar님,

지금 당장 우리에게 이 기능을 켤 필요는 없습니다. 하지만 이 주제를 마무리하기 위해, 나중에 이 내용을 읽는 분들을 위해 Glide에서 받은 피드백을 공유합니다.

우리는 WebView를 구동하기 위해 iframe을 사용합니다. 이는 웹 브라우저에서 이를 구현할 수 있는 유일한 방법입니다. 많은 사이트가 보안상의 이유로 이를 차단한다는 지적은 맞지만, 웹 환경에서는 우리가 할 수 있는 최선의 방법입니다.

Discourse 커뮤니티는 네이티브 앱의 WebView 기능을 전제로 하고 있는 것으로 보이며, 물론 우리는 이를 사용할 수 없습니다.

참고로 Glide는 네이티브 앱이 아닌 프로그레시브 웹 앱(PWA)입니다.

도움 주셔서 감사합니다.