개발자

웹뷰-앱에서 url scheme 의 구체적인 사용 방법이 궁금합니다

2022년 11월 03일조회 526

지금 처음 웹뷰를 개발해보고 있는데 앱 내 웹뷰에서 앱으로 개발 된 다른 페이지로 이동을 할 때 url scheme 을 사용하는 걸로 알고 있습니다 '<scheme>://<domain>/...' 이런 형태의 주소를 a 태그에 걸고 클릭 하면 앱의 네비게이션을 통해 페이지 이동을 한다 라는 것 까지만 알고 있는데 실제로 여기까지 해서 클릭 해보니 별다른 동작이 없었습니다 웹뷰에서는 약속된 주소를 a 태그에 거는 것 까지 하는게 다 인 것 같은데 앱에서는 스킴을 등록한 후 어떤 처리가 더 필요한지, 웹뷰에서 링크를 클릭 했을 때 앱에서는 구체적으로 어떤 과정을 더 거쳐 최종적으로 페이지가 이동하는 건지 궁금합니다 아무리 찾아봐도 관련 글이 나오지 않아 질문 남깁니다..! 기술 스택은 웹뷰는 nextjs, 앱은 flutter 입니다 + 그리고 ios 환경에서 웹뷰 텍스트 인풋 클릭했을 때 키보드는 올라오는데 인풋에 커서가 안생기고 입력해도 값의 변화가 없는 에러를 경험해 보신 분 있으실까요..?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

손정현님의 프로필 사진

안녕하세요! 웹뷰 네비게이션 관련은 url scheme을 등록하더라도 해당 로직을 처리해주는 코드가 필요한 것으로 알고 있습니다. 웹뷰에서 발생하는 이벤트를 잡아서 코드 로직으로 수행한다 - 라고 알고 있어요. 플러터는 아니지만 이 링크를 참고해보시면 어느정도 이해하실 수 있을것 같습니다. https://developer.android.com/develop/ui/views/layout/webapps/webview#custom-urls

profile picture

익명

작성자

2022년 11월 03일

말씀 감사합니다! 그런데 첨부해주신 글은 앱이 백그라운드 상태이고, 앱 외부에서 링크를 클릭했을 때 처리하는 방법인 것 같은데, 혹시 앱이 액티브 상태이고, 앱 내 웹뷰에서 클릭 했을 때 앱 안에서 캐치해서 페이지를 이동시키는 것도 같은 방법으로 할 수 있을까요?

손정현님의 프로필 사진

손정현

coya2022년 11월 03일

아하 제가 질문을 잘못 이해한것 같긴하네요. 지금 웹뷰에서 url scheme을 사용해서 웹뷰를 구동하는 앱 내에 네비게이션을 구현하려고 하시는건가요? 만약 그렇다면 위에 언급한 것처럼 웹뷰 컴포넌트에서 한 행동에 대응하는 로직을 코드로 넣어주셔서 네이티브 네비게이션을 구현할 수 있을 것 같아요. 위와 비슷한 방법이 될 것 같습니다. 찾아보니 so에 비슷한 내용이 있긴한데 도움이 될지는 잘 모르겠습니다. https://stackoverflow.com/questions/65458667/handling-uris-in-android-webview-to-open-apps-or-redirect-to-playstore-always-sh 이외에는 고수분들을 기다려보시죠 :) 저도 궁금하네요.

profile picture

익명

작성자

2022년 11월 03일

네 지금 적어주신 것이 맞습니다! 앱 밖에서 클릭 했을 때 대응하는 것과 같은 방식으로 앱 내에서 클릭하는 것까지 대응하지 못하는 것 같아서 찾고 있었습니다 감사합니다!

profile picture

익명

작성자

2022년 11월 05일

인풋에 포커스가 들어가지 않는 부분에 하나 의견을 드리자면 웹뷰(nextjs) 전역 css에 user-select: none; 이 존재하지 않으신가요? 저도 같은 이슈가 있었어서 말씀드려 봅니다!

profile picture

익명

작성자

2022년 11월 06일

말씀해주신 문제가 맞았습니다! 정말 감사합니다!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!