소프트랩스/싸다구

웹뷰 페이지 이동, 뒤로가기, 스와이프 이동

흑백 개발자 2025. 2. 5. 15:42
728x90

PreloadService를 제외한 이전 코드에서 각 기능별 구현 전략을 분석해드리겠습니다:

  1. 페이지 이동 기능:

onWebViewCreated: (controller) {
  gestureRecognizers: Set()
    ..add(Factory<VerticalDragGestureRecognizer>(
      () => VerticalDragGestureRecognizer(),
    ))
    ..add(Factory<HorizontalDragGestureRecognizer>(
      () => HorizontalDragGestureRecognizer(),
    ))
    ..add(Factory<TapGestureRecognizer>(
      () => TapGestureRecognizer(),
    ))
}
  • Gesture Recognizer들을 추가해서 웹뷰 내부의 터치를 인식하게 했어요
  • 이렇게 하면 웹뷰가 터치 이벤트를 자체적으로 처리할 수 있습니다

    2.Android 뒤로가기:

Future<void> _onBackPressed(BackPressed event, Emitter<WebViewState> emit) async {
  if (await controller.canGoBack()) {
    await controller.goBack();
  }
}
  • WillPopScope 위젯으로 안드로이드 뒤로가기 버튼 이벤트를 감지
  • canGoBack()으로 웹뷰 내에서 뒤로갈 수 있는지 체크
  • 가능하면 goBack() 호출, 불가능하면 앱 종료

    3. iOS 스와이프:

ios: IOSInAppWebViewOptions(
  allowsBackForwardNavigationGestures: true,
)

 

  • InAppWebView의 iOS 옵션에서 allowsBackForwardNavigationGestures를 true로 설정
  • 이렇게만 해도 iOS의 기본 스와이프 제스처가 활성화됩니다

 

728x90