[카카오링크] 웹브라우저에서 공유 완료 후 “닫기” 버튼을 눌러도 창이 닫히지 않음

갤럭시 폴드 기기를 펼친 상태에서 카카오 링크 기능을 실행하면 카카오 친구 화면이 웹으로 열리면서 시작합니다
이 때 보낼 대상을 선택하고 확인을 누르면 대상에게 공유 메시지는 정상적으로 보내지지만, 화면 하단의 닫기 버튼을 눌러도 아무런 변화가 없습니다. 화면 우측 상단의 로그아웃 버튼은 작동합니다

chrome inspect에서 확인해 보니 “Scripts may close only the windows that were opened by them” 라는 에러가 발생하고 있긴 합니다. 이와 관련해서 이전에 질문글이 올라왔던 걸 확인했어요

또는 WebClient에서 https로 시작하는 url의 경우 false을 리턴시켜 해당 웹뷰 페이지가 인앱으로 표시되게 설정했는데 혹시 이 처리와 관련이 있는 걸까요?

아니라면 폴드 기기에서 카카오링크 공유 완료 화면이 표시됐을 때, 닫기 버튼을 누를 경우 공유 완료 화면이 닫히게 하려면 어떻게 해야 좋을지 질문드립니다

안녕하세요.

하이브리드앱 방식으로 앱내 웹뷰에서 카카오톡 공유하신건가요?

(1) 갤럭시 폴드 태블릿 모드

카카오톡 실행은 모바일 브라우저에서만 지원되며 모바일 브라우저 여부는 UA값에 Mobile 값 유무로 판단하고 있습니다.
태블릿 기기나 갤럭시 폴드의 태블릿 모드에서는 해당 값이 제거되기 때문에, 톡 실행을 할수 없는 환경으로 판단되어 웹으로 동작하게 됩니다.

테블릿과 PC간 명확히 UA로 구분하기 어려운 점이 있어 웹뷰의 UA 값에 Mobile을 추가 하여 사용하는 케이스도 존재합니다.

(2) 웹뷰 window.close()

팝업 웹뷰처리 하이브리드 앱 가이드 | Kakao Developers 하이브리드 앱 가이드

Android 앱에서 웹뷰에 WebChromeClient를 설정하면, 아래 메서드가 호출됩니다.

안녕하세요

네, 말씀하신 대로 하이브리드 앱이고, 앱 내 웹뷰에서 카카오톡 공유 기능을 사용합니다.

폴드 기기를 펼친 채 사용하면 userAgent에 Mobile 값이 사라져서 카카오톡 공유 기능이 웹으로 동작합니다.

그러나 공유 완료 후, 완료 화면 하단의 닫기 버튼을 누르면 작동하지 않는데 이것을 onCloseWindow() 메서드를 통해서 조작할 수 있는지요?

  • 추가로 onCloseWindow()를 재정의했는데 닫기 버튼을 눌러도 해당 메서드가 호출되지 않습니다. 폴드 기기를 펼친 채 카카오톡 공유 완료 화면으로 이동한 경우, 닫기 버튼은 작동하지 않는 걸까요?

안녕하세요.

  • 추가로 onCloseWindow()를 재정의했는데 닫기 버튼을 눌러도 해당 메서드가 호출되지 않습니다. 폴드 기기를 펼친 채 카카오톡 공유 완료 화면으로 이동한 경우, 닫기 버튼은 작동하지 않는 걸까요?

일반 모바일 Android 앱내 웹뷰에서 웹뷰 띄워 공유하고 닫기 처리 해보니 잘되서

이부분은 저도 기기를 확보해서 어떤 상황인지 확인해봐야할 듯한데요.
UA 값에 Mobile을 추가 하여 사용하시는것도 방법일듯하네요