[Flutter] WebView ^4.4.2

김동욱·2023년 12월 23일
0

Flutter WebView 4.0+

3.0에서 4.0으로 마이그레이션하면서 WebView 관련 변경사항

1. WebViewController 인스턴스화:

  • 이제는 WebView가 위젯 트리에 추가되기 전에도 WebViewController를 인스턴스화 및 사용 가능
  • 이전에는 WebView가 위젯 트리에 추가된 후에만 WebViewController를 가져올 수 있었습니다.

2. WebView 기능 대체:

  • WebView 클래스가 제거
  • WebView 클래스 기능이 WebViewController 및 WebViewWidget으로 분할
  • WebViewController는 각 플랫폼에서 제공되는 기본 웹 뷰와 관련된 모든 기능을 처리
    (예: URL 로딩, 플랫폼 뷰의 배경색 설정, 캐시 지우기 등)
  • WebViewWidget은 WebViewController를 사용하고 모든 Flutter 위젯 관련 기능을 처리
    (예: 레이아웃 방향, 제스처 인식기 등)

3. Android에서의 PlatformView 구현:

  • 버전 23 이상에서는 Texture Layer Hybrid Composition을 사용
  • 버전 19-23에서는 자동으로 Hybrid Composition으로 대체
  • 버전 23 이상에서 수동으로 Hybrid Composition으로 전환 가능

WebViewController 초기화 예시

Scanffold 의 body 부분에서 WebViewWidget 사용예

초기화된 controller 를 인자로 받는다

WebViewController loadRequest(Uri)

AppBar action에 메뉴버튼 추가 및 각 버튼의 value 에 따라서 페이지로드

PopScope 뒤로가기 버튼 클릭시

다음과 같은 이슈로 WillPopScope 대신 PopScope 사용
WillPopScope is deprecated and shouldn't be used, Use PopScope instead

ref)
webview_flutter 4.4.2, 23.12.23, https://pub.dev/packages/webview_flutter

WebViewController class, 23.12.23, https://pub.dev/documentation/webview_flutter/latest/webview_flutter/WebViewController-class.html

PopScope class, 23.12.23, https://api.flutter.dev/flutter/widgets/PopScope-class.html

github kevin-chela, 23.12.23, https://github.com/kevin-chela/webview-flutter-codelab/tree/main/lib/src

profile
백엔드 개발자

0개의 댓글