WebView onMessage가 두 번째로 마운트된 화면에서 전달되지 않는 문제가 발생하고 있습니다

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

react-native-webview의 postMessage() → onMessage 브릿지가, 앱 내에서 두 번째로 마운트되는 WebView 화면에서만 작동하지 않습니다. 웹페이지 쪽 window.ReactNativeWebView.postMessage() 호출은 에러 없이 성공하지만, React Native 쪽 onMessage 콜백이 전혀 호출되지 않습니다(로그조차 안 찍힘). granite dev에서는 정상 동작하고, ait build로 만든 프로덕션 빌드에서만 재현됩니다.

환경
@apps-in-toss/framework: ^2.10.10
@granite-js/native / @granite-js/react-native: 1.0.43
react: 19.2.3
react-native: 0.84.0 (프로젝트 선언 기준)
플랫폼: Android, iOS
재현 빌드: ait build로 생성한 프로덕션 빌드 (granite dev에서는 재현 안 됨)

실제 동작
화면에 아무 반응 없음
adb logcat에서 ReactNativeJS 태그로 onMessageHandler => 로그가 전혀 안 찍힘
RNCWebViewBridge/messaging is disabled 관련 경고도 없음 (즉 messagingEnabled는 true로 정상 설정된 상태로 보임)
크롬 원격 디버깅(chrome://inspect)으로 해당 WebView의 콘솔에 직접 접속해서 수동으로 window.ReactNativeWebView.postMessage(…)를 호출해봐도 undefined만 반환되고(에러 없음) 역시 아무 반응 없음
첫 번째 화면(content.tsx)의 브릿지는 /browser를 열고 닫은 뒤에도 계속 정상 동작 — 전역적으로 브릿지가 깨지는 건 아니고, 두 번째로 마운트된

해당 문제는 9월1일부터 발생 하고 있는것으로 추정하고 있습니다만, 저희 내부에서는 아무런 작업이나 업데이트가 없었던 상황입니다.
문제없이 동작하던 기능이 갑자기 안되고 있는 상황이라 서비스 불가로 인해 문제가 되는 부분에 대한 서비스 제공은 현재 유저 노출을 막아 놓은 상태입니다.

appName (선택)

treasurecomics

안녕하세요 :slight_smile:
이슈 확인되어 조치중입니다.
빠르게 조치 후 공유드리겠습니다!

확인해보니, 자사몰 랜딩 > RN 웹뷰에서 앱브릿지가 호출되는 구조인 것 같은데 맞을까요 ?

네, 맞습니다.
자사 웹사이트 랜딩 → 특정 메뉴 클릭 → 새로운 화면에서 자사 서브 웹사이트 랜딩(RN 웹뷰에서 앱브릿지가 호출되는 구조 맞습니다.)

@sunwoo 님 안녕하세요
앱인토스 정책상 자사몰로의 랜딩은 허용되지 않습니다
해당 정책은 앱인토스 출시 이후 변경된 적 없이 동일하게 유지되고 있는 내용입니다

이에 따라 9월1일부로 자사몰 랜딩을 차단하는 로직이 내부 서버에 적용되었습니다
자사몰로 랜딩되지 않도록 빠른 시일 내에 수정 부탁드립니다.

감사합니다.

자사몰이라 하시면 온라인 쇼핑몰일까요 ?
그렇다면, 저희는 쇼핑몰과는 상관없는 웹툰을 웹으로 제공하고 있습니다.

도메인 기준으로 체크하고 있어요

도메인이면, 어느 기준일까요 ?(콘솔에서는 도메인 관련 내용이 보이지 않아 문의 드립니다.)
처음에 열리는 도메인과 두번째로 열리는 웹뷰의 도메인이 동일하면 해결이 될까요 ?

자사 웹사이트를 의미하며, Webview로 외부에 호스팅된 리소스(웹페이지)를 불러오는 것도 외부 랜딩에 포함됩니다.

앱인토스 SDK(API) 앱브릿지는 앱인토스 미니앱 origin 에서만 호출이 가능합니다 :slight_smile: