티스토리 뷰
현재 프로젝트 경로에 Terminal 로 가서
flutter pub add webview_flutter
PS C:\Users\aaa\StudioProjects\first_flutter> flutter pub add webview_flutter
flutter pub add webview_flutter 
Resolving dependencies...  
  collection 1.17.2 (1.18.0 available) 
  material_color_utilities 0.5.0 (0.8.0 available) 
  meta 1.9.1 (1.10.0 available) 
+ plugin_platform_interface 2.1.6 
  stack_trace 1.11.0 (1.11.1 available) 
  stream_channel 2.1.1 (2.1.2 available) 
  test_api 0.6.0 (0.6.1 available) 
  web 0.1.4-beta (0.2.2-beta available) 
+ webview_flutter 4.4.1 
+ webview_flutter_android 3.12.0 
+ webview_flutter_platform_interface 2.6.0 
+ webview_flutter_wkwebview 3.9.1 
Changed 5 dependencies!
그럼 이렇게 될것이다.

controller 디렉토리를 만들고 webview_controller.dart 파일을 만든다.
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebviewMainController extends GetxController {
  static WebviewMainController get to => Get.find();
  var controller = WebViewController()
    ..setJavaScriptMode(JavaScriptMode.unrestricted)
    ..setBackgroundColor(const Color(0x00000000))
    ..setNavigationDelegate(
      NavigationDelegate(
        onProgress: (int progress) {
          // Update loading bar.
        },
        onPageStarted: (String url) {},
        onPageFinished: (String url) {},
        onWebResourceError: (WebResourceError error) {},
        onNavigationRequest: (NavigationRequest request) {
          if (request.url.startsWith('http://google.com')) {
            return NavigationDecision.prevent;
          }
          return NavigationDecision.navigate;
        },
      ),
    )
    ..loadRequest(Uri.parse('http://google.com'));
  WebViewController getController() {
    return controller;
  }
}main.dart
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebviewMainController extends GetxController {
  static WebviewMainController get to => Get.find();
  var controller = WebViewController()
    ..setJavaScriptMode(JavaScriptMode.unrestricted)
    ..setBackgroundColor(const Color(0x00000000))
    ..setNavigationDelegate(
      NavigationDelegate(
        onProgress: (int progress) {
          // Update loading bar.
        },
        onPageStarted: (String url) {},
        onPageFinished: (String url) {},
        onWebResourceError: (WebResourceError error) {},
        onNavigationRequest: (NavigationRequest request) {
          if (request.url.startsWith('http://google.com')) {
            return NavigationDecision.prevent;
          }
          return NavigationDecision.navigate;
        },
      ),
    )
    ..loadRequest(Uri.parse('http://google.com'));
  WebViewController getController() {
    return controller;
  }
}실행하면 된다.

android:usesCleartextTraffic="true"AndroidManifest.xml 에 위를 추가해야 한다. 이전글 참조.
'플러터(Flutter)' 카테고리의 다른 글
| 플러터 레이아웃 리팩토링 (0) | 2024.10.23 | 
|---|---|
| 플러터 레이아웃 (0) | 2024.10.23 | 
| 플러터 net::ERR_CLEARTEXT_NOT_PERMITTED (0) | 2023.10.07 | 
| [플러터] flutter url_launcher 를 사용하여 웹 브라우저 창 띄우기 (0) | 2023.10.05 | 
| 라이믹스 게시판을 플러터 리스트로 만들기 - 1 (0) | 2023.06.22 | 
- Total
- Today
- Yesterday
- 인포믹스
- 오라클
- 자바 smtp
- MySQL
- 파싱
- 포인터
- KG
- 스크래핑
- 프로씨
- C언어
- 플러터
- xe addon
- EC
- 문자열
- ocajp
- XE3
- xe애드온
- 라이믹스
- webix
- 파이썬
- XE
- esql
- php
- JDBC
- 이클립스
- proc
- ocjap
- C
- Python
- 자바
| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | 
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | 
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | 
| 26 | 27 | 28 | 29 | 30 | 31 | 
