단순한 웹뷰 래핑이 아닙니다. PHP 세션 브릿지, FCM 리치 푸시, 네이티브 UI 동기화까지 — 라이믹스 커뮤니티를 진짜 앱으로 만듭니다.
웹뷰 래핑 앱과는 차원이 다릅니다. 네이티브와 웹의 경계를 지우는 5가지 기술 축.
앱 실행 시 device_token,
appOS,
appVersion을 쿠키로 주입.
웹 로그인 시 PHP가 발급한 device_key를 캡처하여
SharedPreferences에 백업하고, 세션 만료 시 JS Handler로 자동 복원합니다.
FCM 토픽 구독(global_all)으로 전체 발송.
이미지 URL 페이로드 감지 시 BigPictureStyle(Android) / Attachment(iOS)로 리치 알림,
탭 시 url 딥링크로 즉시 라우팅.
SystemUiOverlayStyle로 시스템 바 색상을 웹 탭바와 동기화.
is_rambo_app=Y 쿠키로 웹 하단 패딩을 0으로 설정하여
더블 패딩 원천 차단.
shouldOverrideUrlLoading으로 전체 트래픽 인터셉트.
내부는 HTTPS 강제, 외부는 시스템 브라우저,
intent://
kakaolink:// 등은 네이티브로 분기.
ramboapp://share 커스텀 스킴으로 OS 공유 시트 호출,
permission_handler로 위치 권한 동적 요청,
왼쪽 엣지 스와이프로 뒤로가기.
resizeToAvoidBottomInset: false로 키보드 레이아웃 깨짐 방지.
로그아웃 시 로컬 인증 데이터 자동 클리어. WidgetsBindingObserver로 앱 복귀 시 상태 재검증.
앱 실행 시 appOS, appVersion, device_token, is_rambo_app 쿠키 주입
웹 로그인 후 PHP가 발급한 device_key + member_srl을 캡처하여 로컬 백업
onLoadStop → getLoginStatus → 세션 만료 시 procMemberLoginWithDevice로 자동 복원
InAppWebView 코어 구조부터 쿠키 동기화까지. 실제 프로덕션 코드에서 발췌했습니다.
resizeToAvoidBottomInset: false가 없으면
키보드가 올라올 때 웹뷰가 리사이즈되면서 모달과 하단 UI가 깨집니다.
is_rambo_app=Y 쿠키로
웹 CSS의 하단 패딩을 0으로 만들면 SafeArea와의 더블 패딩이 사라지고,
SystemUiOverlayStyle로
시스템 바 색상을 맞추면 앱과 웹의 경계가 완전히 사라집니다.