플러터에서 웹뷰는 iOS, Android의 네이티브 컴포넌트를 사용하여 띄움
따라서 패키지를 추가시켜줘야함
크게 2가지 webView가 있는데
-> flutter_webview: flutter공식팀에서 만들고 관리하지만 기능이 많이 없음
-> flutter_inappwebview: 3rd party지만 여러 기능이 있음
기능이 많이 없는관계로 보통 inappwebview를 많이 쓴다고 한다
추가하는것은 간단하게 flutter pub add flutter_inappwebview로 패키지를 추가해주고
다음과 같이 추가하여 쓸수 있다.
InAppWebView( // InAppWebView 최초 요청할 URL initialUrlRequest: URLRequest( url: WebUri("https://www.naver.com/"), ), // WebView 설정 : 외우지 마시오! 버전바뀌면 사용법 바뀌니까 이런설정을 할 수 있다 정도로만 학습바랍니다! initialSettings: InAppWebViewSettings( // 사용자 제스쳐 없이도 비디오, 오디오 자동재생 가능여부 mediaPlaybackRequiresUserGesture: true, // 페이지 javascript 활성화여부. 웹 브라우저에서는 js 필수불가결한 요소라 true! javaScriptEnabled: true, // 요청하는 클라이언트의 브라우저 종류, 운영체제, 장치 정보 등을 서버에서 알 수 있게 보낼때 같이 보냄 // 디폴트로 웹뷰로 되어 있는데 일부 웹페이지에서는 웹뷰로 접속시 차단하는 페이지도 있으니 꼭 설정! userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', ), // WebView 네이티브 컴포넌트가 만들어지면 호출됨 onWebViewCreated: (controller) { print('onWebViewCreated'); }, // 페이지 로딩이 시작될 때 호출됨 onLoadStart: (controller, url) { print('onLoadStart'); }, // 페이지 로딩이 완료되면 호출됨 onLoadStop: (controller, url) { print('onLoadStop'); }, // 웹뷰 내 웹 페이지에서 GPS, 카메라 등의 권한을 요청했을때 호출됨 onPermissionRequest: (controller, request) async { print('onPermissionRequest'); return null; }, )
728x90
'Programming > Flutter' 카테고리의 다른 글
[내일배움] flutter LIstView Seperated 사용 방법 (0) | 2024.12.03 |
---|---|
[내일배움] flutter Builder Widget사용법 (0) | 2024.12.03 |
[내일배움] flutter TextField사용시 controller dispose방법 (0) | 2024.12.02 |
[내일배움] Flutter TextField 사용시 빈화면 클릭할때 키보드 비활성화 (0) | 2024.12.02 |
[내일배움] 데이터 통신 기초와 JSON (1) | 2024.11.29 |