모바일 Chrome에서 게시물을 공유하면 루트 URL이 반환됩니다

최근에 모바일 Chrome(Android)에서 Discourse 게시물을 열고 브라우저의 공유 메뉴를 통해 Outlook이나 메시지 또는 다른 앱을 선택하여 공유하려고 하면, 공유하려는 실제 게시물의 URL이 아닌 Discourse의 루트 URL(예: https://discourse.domain.org)이 항상 전달되는 문제를 발견했습니다.

1개의 좋아요

정리하자면:

  • 게시물 공유는 정상적으로 작동하며, 네이티브 웹 공유 API를 사용합니다.

  • 게시물 타임스탬프도 정상적으로 작동하며, 현재 URL이 포함된 Discourse 툴팁이 열립니다.

브라우저의 세 점 메뉴를 클릭한 후 공유를 선택하면 실패합니다. Chrome Android는 64 버전 이후 새로운 "기능"을 도입했는데, 공유 시 페이지의 canonical URL을 사용하도록 되어 있습니다. 우리는 canonical URL을 서버 측에서만 생성하므로 SPA 내비게이션 시 업데이트되지 않습니다. 따라서 Android 공유 메뉴 기능은 처음 로드된 페이지에 고정되어 버립니다.

이 문제는 2019-01-23에 출시된 Chrome 64부터 발생한 것으로 보이며, 많이 사용되지 않는 기능입니다. 주로 동일한 API를 사용하는 게시물 수준 공유 버튼을 제공하기 때문에, 이 버튼들이 훨씬 접근하기 쉽고 정확하기 때문입니다. PWA 모드에서 사용하는 사용자들은 세 점 메뉴에 접근할 수도 없습니다.

수정하려면 canonical URL을 클라이언트 측에서도 계산하고 업데이트해야 하는데, 이는 결국 불일치로 이어질 수 있는 귀찮은 코드 중복을 초래합니다. 다른 전략은 모든 응답 시 서버에서 canonical URL을 요청하는 것입니다.

4개의 좋아요

정보 주셔서 감사합니다. 디스커스의 공유 기능을 사용할 수 있다는 것은 알고 있지만, 어떤 웹 페이지에서든 사용하기 때문에 브라우저의 공유 기능에 너무 익숙합니다. 이건 그렇게 중요한 문제는 아니고, 디스커스에서 그렇게 자주 사용하지는 않는데, 최근에야 이 문제를 알게 되었습니다. 하지만 다시 정상적으로 작동하면 좋겠습니다.

1개의 좋아요

@pmusaraj 님이 이를 수정했습니다

4개의 좋아요

이 주제는 47시간 후 자동으로 닫혔습니다. 새로운 답글을 더 이상 작성할 수 없습니다.

이 수정 사항에 대한 회귀 문제가 보고되어 이 이슈를 다시 열었습니다.

3개의 좋아요