플러터에서 웹뷰는 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 |