inappwebview 기본 설정
1. Inappwebview 추가
터미널에 해당 명령어를 입력하여 패키지 추가
Flutter Main 함수 내 메서드 호출 추가
2. Inappwebview 기본 세팅
key
위젯을 고유하게 식별하는데 사용되며, 위젯의 상태를 유지하고 특정 위젯을 식별하여 조작할 수 있다.
GlobalKey를 선언하여 key값으로 넣어줌
initialUrlRequest
웹 뷰를 처음 실행할 때 초기 URL 요청으로, 로드 될 URL 뿐만 아니라 HTTP 메소드(GET, POST 등), 헤더, 캐시 정책, 타임아웃 및 기타 요청 관련 정보가 포함 될 수 있다.
initialFile
웹뷰가 로드될 때 처음에 표시할 로컬 파일의 경로를 지정한다. 이를 통해 앱의 로컬 파일 시스템에 저장된 HTML 파일 등을 웹뷰에서 로드할 수 있다.
initialData
HTML 문자열이나 데이터를 지정하여 웹뷰가 처음에 표시할 내용을 설정한다. 이를 통해 문자열 형태의 HTML 데이터를 직접 웹뷰에 전달하여 초기 페이지로 표시할 수 있다.
initialUserScripts
웹뷰가 로드되면서 삽입될 사용자 지정 스크립트를 정의한다. 이를 통해 로드 되는 동안 추가적인 스크립트를 삽입하여 웹페이지의 동작을 변경하거나 특정 기능을 추가할 수 있다.
contextMenu
컨텍스트 메뉴의 동작을 설정한다. 사용자가 웹뷰 내에서 요소를 길게 누르면 표시되는 컨텍스트 메뉴의 동작(링크 열기, 링크 새 탭에서 열기, 이미지 저장, 이미지 공유 등)을 커스터마이징 할 수 있다.
implementation
플랫폼별로 웹뷰 구현체를 지정하는 데 사용. 특정 플랫폼(Android 또는 iOS)에서만 작동하는 웹뷰 구현체를 선택할 수 있다.
windowId
웹뷰의 윈도우 ID를 설정하여 웹뷰간의 통신등에 사용된다.
Progress
double 형태로 progress 초기값 0으로 선언하여 onProgressChanged 등에 사용할 수 있다.
이를 통해 웹뷰가 켜지는 진행상태를 화면에 노출 시킬 수 있다.
InAppWebViewController
onWebViewCreated에서 웹뷰 컨트롤러를 선언하여 여러 웹뷰 함수에 설정하고 제어할 수 있다.
PullToRefreshController
당겨서 새로고침 컨트롤러를 선언하여 상단을 끌어내렸을때, 새로고침 되는 함수나 테마를 설정하고 제어할 수 있다.
InAppWebViewGroupOption
웹 뷰를 설정하는 옵션들로 공용 옵션, android용 옵션, iOS용 옵션으로 나누어져 있다.
3. Inappwebview 콜백 함수들을 통해 시점에 따라 기능 제어
onWebViewCreated
웹뷰가 생성 되었을 때 호출되는 콜백함수. 보통 웹뷰 컨트롤러나 초기 설정 등의 작업을 수행한다.
onLoadStart
페이지 로드가 시작될 때 호출되는 콜백함수. 로딩 인디케이터 노출이나 상태를 표시하고 로그를 기록하는 등의 작업을 수행한다.
onLoadStop
페이지 로드가 완료되었을 때 호출되는 콜백함수. 로딩 인디케이터를 감추거나 상태를 표시하고 로그를 기록하는 등의 작업을 수행한다.
onLoadError
페이지 로드 중 에러가 발생할 때 호출되는 콜백함수. 오류 상태와 에러를 전달한다.
onConsoleMessage
‘console.log()’와 같은 자바스크립트 콘솔 메시지가 있을 때 호출되는 콜백함수. 해당 메시지를 앱으로 전달한다.
shouldOverrideUrlLoading
페이지 로드를 시도할 때 호출되는 콜백함수. InAppWebViewGroupOption에서 useShouldOverrideUrlLoading 옵션이 true로 설정되어 있어야한다. 페이지 로드의 흐름을 제어하고 특정 URL 로드를 중단하거나 허용, 리디렉션 관리 등의 작업을 수행한다.
onLoadResource
페이지 로딩 중에 리소스(이미지, 스크립트, 스타일시트 등)가 로드될 때 호출되는 콜백함수. 주로 로드된 리소스 추적하고 상태 확인, 특정 리소스의 동작 관리(특정 도메인의 리소스 차단, 특정 CSS파일의 로드 허용)등의 작업을 수행한다.
onScrollChanged
스크롤 이벤트가 발생할 때 호출되는 콜백함수. 스크롤 위치를 추적하여 상태에 따른 동작 제어, 그에 따른 UI 변경등의 작업을 수행한다.
onDownloadStart
파일 다운로드가 시작될 때 호출되는 콜백함수. 주로 다운로드 허용 및 차단, 다운로드 진행 상황이나 파일 관리등의 작업을 수행한다.
onCreateWindow
새 창(새로운 웹뷰 창)을 생성할 때 호출되는 콜백함수. 새 창을 생성하고 관리하며, 다중 창 처리 등의 작업을 수행한다.
onCloseWindow
웹뷰의 창(창 단위의 브라우징 세션)이 닫힐 때 호출되는 콜백함수. 창 닫기 관련 동작(해당 창의 리소스 해제, 관련 데이터의 정리 등)을 수행한다
onJsAlert/onJsConfirm/onJsPrompt
페이지에서 자바스크립트에서 alert()/confirm()/prompt()와 같은 다이얼로그 창을 요청했을 때 호출되는 콜백함수.
onProgressChanged
페이지 로딩의 진행 상태가 변경될 때 호출되는 콜백함수. 주로 페이지 로딩 진행률이 변경되면 이벤트를 처리한다.
onReceivedServerTrustAuthRequest
웹뷰에서 서버의 신뢰 인증 요청(SSL 인증서에 관한 신뢰성을 검증하거나 승인 등의 작업)을 받았을 때 호출되는 콜백함수. SSL 인증서를 검증하고 승인, 거부 및 사용자 확인 등의 작업을 수행한다.
onReceivedHttpAuthRequest
웹뷰에서 HTTP 기본 인증(일반적으로 사용자 이름과 비밀번호) 요청을 받았을 때 호출되는 콜백함수. 주로 인증 정보 제공, 인증 실패 시 처리나 다중 계정 처리등의 작업을 수행한다.
Last updated