최근에 모바일 Chrome(Android)에서 Discourse 게시물을 열고 브라우저의 공유 메뉴를 통해 Outlook이나 메시지 또는 다른 앱을 선택하여 공유하려고 하면, 공유하려는 실제 게시물의 URL이 아닌 Discourse의 루트 URL(예: https://discourse.domain.org)이 항상 전달되는 문제를 발견했습니다.
정리하자면:
-
게시물 공유는 정상적으로 작동하며, 네이티브 웹 공유 API를 사용합니다.
-
게시물 타임스탬프도 정상적으로 작동하며, 현재 URL이 포함된 Discourse 툴팁이 열립니다.
브라우저의 세 점 메뉴를 클릭한 후 공유를 선택하면 실패합니다. Chrome Android는 64 버전 이후 새로운 "기능"을 도입했는데, 공유 시 페이지의 canonical URL을 사용하도록 되어 있습니다. 우리는 canonical URL을 서버 측에서만 생성하므로 SPA 내비게이션 시 업데이트되지 않습니다. 따라서 Android 공유 메뉴 기능은 처음 로드된 페이지에 고정되어 버립니다.
이 문제는 2019-01-23에 출시된 Chrome 64부터 발생한 것으로 보이며, 많이 사용되지 않는 기능입니다. 주로 동일한 API를 사용하는 게시물 수준 공유 버튼을 제공하기 때문에, 이 버튼들이 훨씬 접근하기 쉽고 정확하기 때문입니다. PWA 모드에서 사용하는 사용자들은 세 점 메뉴에 접근할 수도 없습니다.
수정하려면 canonical URL을 클라이언트 측에서도 계산하고 업데이트해야 하는데, 이는 결국 불일치로 이어질 수 있는 귀찮은 코드 중복을 초래합니다. 다른 전략은 모든 응답 시 서버에서 canonical URL을 요청하는 것입니다.
정보 주셔서 감사합니다. 디스커스의 공유 기능을 사용할 수 있다는 것은 알고 있지만, 어떤 웹 페이지에서든 사용하기 때문에 브라우저의 공유 기능에 너무 익숙합니다. 이건 그렇게 중요한 문제는 아니고, 디스커스에서 그렇게 자주 사용하지는 않는데, 최근에야 이 문제를 알게 되었습니다. 하지만 다시 정상적으로 작동하면 좋겠습니다.
@pmusaraj 님이 이를 수정했습니다
이 주제는 47시간 후 자동으로 닫혔습니다. 새로운 답글을 더 이상 작성할 수 없습니다.
이 수정 사항에 대한 회귀 문제가 보고되어 이 이슈를 다시 열었습니다.