Flutter-WebView 사용에 대한 자세한 설명

Flutter에도 WebView가 있는데 Flutter는 어떻게 웹을 불러옵니까?Flutter는 WebView 플러그인을 제공하고flutter_webview_plugin: ^0.3.1pubspce를 가져옵니다.yaml 그리고 WebviewScaffold와 FlutterWebviewPlugin을 직접 사용할 수 있어요.
WebviewScaffold
Flutter의 웹 WidgetWebviewScaffold WebviewScaffold 사용 방법
WebviewScaffold(
            url: widget.url,
            //   URL
            withZoom: true,
            //    
            withLocalStorage: true,
            //    
            hidden: true,
            //      
            initialChild: Container(
              color: Colors.white,
              child: Center(
                child: Text('Wiating...'),
              ),
            ), //       
          ),

 
WebviewScaffold 사용 방법은 매우 간단합니다. 우선 자주 사용하는 속성을 알아보세요.
Key key,
 this.appBar,
 @required this.url,//String    URL
 this.headers,//    
 this.withJavascript,//bool     Javascript
 this.clearCache,//bool     
 this.clearCookies,//bool   cookies
 this.enableAppScheme,//
 this.userAgent,//String userAgent
 this.primary = true,
 this.persistentFooterButtons,
 this.bottomNavigationBar,//Widget    bar
 this.withZoom,//bool       
 this.withLocalStorage,//bool         
 this.withLocalUrl,//bool
 this.scrollBar,//bool     scrollBar
 this.supportMultipleWindows,
 this.appCacheEnabled,//bool       
 this.hidden = false,//bool     
 this.initialChild,//    child,  hidden = true   Widget
 this.allowFileURLs,//bool          FileURL
 this.resizeToAvoidBottomInset = false,
 this.invalidUrlRegex,
 this.geolocationEnabled

 
위에서 말한 바와 같이 웹을 불러올 수 있습니다. 웹의 상태를 감청하려면 FlutterWebviewPlugin을 사용하여 감청을 설정해야 합니다.
FlutterWebviewPlugin WebView 상태 모니터링
//  URL   
StreamSubscription _onUrlChanged;
//  WebView     
  StreamSubscription _onStateChanged;
//  WebView       
  StreamSubscription _onHttpError;

webviewReference.close(); //           
    //URL      
    _onUrlChanged = webviewReference.onUrlChanged.listen((url) {});

    //      
    _onStateChanged = webviewReference.onStateChanged.listen((state) {
      switch (state.type) {
        case WebViewState.startLoad: //    
          if (_isToMain(state.url) && !exiting) {
            if (widget.backForbid) {
              webviewReference.launch(widget.url);
            } else {
              Navigator.pop(context);
              exiting = true;
            }
          }
          break;
        default:
          break;
      }
    });

    //      
    _onHttpError = webviewReference.onHttpError.listen((error) {
      print(error);
    });

주의해야 할 것은Widget을 없애기 전에 WebView의 감청과view를 없애는 것입니다.
@override
  void dispose() {
    //  web view
    _onUrlChanged.cancel();
    _onStateChanged.cancel();
    _onHttpError.cancel();
    webviewReference.dispose();
    super.dispose();
  }

 
글쓴이: JakePrim
기사 링크:https://jakeprim.cn/2019/04/07/flutter-1-3/
저작권 고지: 본 블로그의 모든 기사는 특별 고지를 제외하고 CC BY-NC-SA 4.0 라이센스 계약을 따릅니다.전재는 Jake Prim 기술 연구원에서 왔다는 것을 명기해 주십시오!

좋은 웹페이지 즐겨찾기