[패키지 추가]
pubspec.yaml 에 최신 버전의 패키지 의존성을 주입해 줍니다.
webview_flutter: ^4.8.0
[Controller 만들기]
간단하게 만들려고 그냥 냅다 controller를 만들었지만 정확한 로직으로는 따로 페이지를 만들어줘서 불러오는게 좋다..
final controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted) //자바스크립트 사용 가능한지
..setBackgroundColor(const Color(0x00000000)) // 웹뷰의 배경색 설정
..setNavigationDelegate( //네비게이션 대표로 뭐 할 지 설정
NavigationDelegate(
onProgress: (int progress) { //페이지 로드 진행 상황을 표시
},
onPageStarted: (String url) {}, //페이지 로드가 시작될 때
onPageFinished: (String url) {}, //페이지 로드가 완료될 때
onHttpError: (HttpResponseError error) {}, //http 오류가 생겼을 때
onWebResourceError: (WebResourceError error) {}, //웹 리소스 오류가 발생했을 때
onNavigationRequest: (NavigationRequest request) {
// 새로운 네비게이션 요청이 있을때 호출 되는 콜백
if (request.url.startsWith('https://www.youtube.com/')) {
//예시로 youtube 도메인일 때 페이지 로드를 막는 예외처리를 해봄
return NavigationDecision.prevent;
}
return NavigationDecision.navigate;
},
),
)
..loadRequest(Uri.parse('원하는 웹 브라우저 주소'));
// 웹페이지 요청!!
WebViewController 라는 객체를 생성하고 그 컨트롤러에 맞는 세세한 설정을 해준다.
'Flutter' 카테고리의 다른 글
flutter [object ProgressEvent] error - Image.network 오류 (1) | 2024.07.02 |
---|---|
link : fatal error lnk1168 오류 (0) | 2024.07.01 |
Flutter - dart의 dynamic 과 object 의 차이점 (0) | 2024.06.24 |
flutter - KeyedSubtree 사용 (0) | 2024.06.19 |
Flutter 에서 사용 되는 Size의 단위 (0) | 2024.06.14 |