이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
안녕하세요. 서울 공공도서관 전자책·종이책 통합 검색 미니앱을 준비하고 있는 개인 개발자입니다.
테스트 채널에 배포해서 실제 기기에서 테스트하던 중 외부 웹페이지로 이동할 때 조금 이상한 동작이 있어서 문의드립니다.
4525 「토스쇼핑 진입 후 미니앱 복귀 문의」와 비슷한 문제인 것 같아서요.
해당 글에서 「내부 개선이 필요합니다」라고 답변 주신 것도 확인했습니다.
다만 제 경우에는 iOS에서 외부 도메인으로 window.open을 사용하는 경우라서, 같은 문제인지 궁금합니다.
-
현재 상황
공공도서관 전자책 대출은 각 자치구가 계약한 외부 플랫폼에서 이루어집니다.
그런데 이쪽은 공개 대출 API가 없어서 사용자가 미니앱에서 '대출받기’를 누르면 해당 도서관의 대출 웹페이지로 이동시켜야 하는 상황입니다.
앱스토어 링크가 아니라 일반 웹페이지 URL로 이동합니다. -
재현 방법
- 미니앱에서 window.open(외부 도서관 대출 페이지 URL) 호출
- 해당 페이지가 토스에서 오버레이 형태로 열림
- 이때 미니앱은 persisted=true 상태로 살아 있음
- 오버레이가 열린 상태에서 iOS 좌측 가장자리 스와이프
- 이렇게 하면 오버레이만 닫히는 게 아니라 미니앱까지 같이 닫히면서 토스 홈으로 이동합니다.
-
사담
조금 재미있는 게 손가락을 당기는 속도에 따라서 결과가 다릅니다. 천천히 스와이프하면 미니앱으로 돌아오는데, 빠르게 하면 미니앱까지 닫히고 토스 홈으로 나갑니다. 이것은 정확하게 잘 모르는 부분입니다. 어떨 때는 홈으로 가버려서 정확하진 않습니다 ㅠ.
그리고 오버레이 안에는 닫기(X)나 ‘완료’ 같은 버튼이 따로 보이지 않습니다. 그래서 현재로서는 좌측 스와이프가 사실상 오버레이에서 빠져나오는 방법인데, 이게 미니앱까지 닫아버리는 상황입니다.
Screen.setIosSwipeBack(false)도 테스트해봤습니다. 오버레이를 열기 전에 호출하면 스와이프 자체는 막히는데, 그러면 오버레이에서 빠져나올 방법이 없어집니다. 결국 앱을 강제 종료해야 해서 이 방법은 일단 되돌려놓았습니다.
제가 원하는 동작은 단순히 오버레이만 닫히고 기존 미니앱으로 돌아오는 것입니다. -
질문
이 문제가 4525에서 말씀하신 문제와 같은 원인인지 궁금합니다.
같은 문제라면 해당 개선에 같이 포함되는지도 알고 싶습니다.
오버레이만 닫을 수 있는 SDK 기능이 따로 있을까요?
현재 Screen 네임스페이스에서는 close, setAwakeMode, setSecure, setIosSwipeBack, setOrientation 정도만 확인됩니다.
Device.openURL도 테스트해봤는데 실제 기기에서는 cannot_open이 반환됩니다. (수정) 다시 확인해보니 우리앱에서 SDK 오류 메시지를 버리고 있던 것으로 확인됐습니다. 계측에서Device.openURL은 정상 동작하고 대상 주소(비표준 포트 포함)도 열립니다. (수정)
4525 답변에서 유저 신고 가능성 때문에 링크를 제거해달라는 안내도 봤습니다. 저처럼 외부 도서관 웹페이지로 이동하는 게 서비스 특성상 필요한 경우에는 출시 심사에서 어떻게 보는지도 궁금합니다. 현재 권장되는 이동 방식이 있다면 알려주시면 감사하겠습니다.
지금은 location.assign으로 같은 웹뷰에서 페이지를 이동시키는 방법도 생각하고 있는데, 이런 방식이 오히려 권장되는 방법인지도 궁금합니다.
비슷한 경험이 있으시거나 권장되는 방법이 있다면 알려주시면 감사하겠습니다. -
테스트 환경
iOS
토스 앱 5.271.0
@apps-in-toss/web-framework 3.0.3
테스트 채널 배포본
appName (선택)
bookdrawer