개발/flutter

Flutter Webview 흰 화면만 뜨는에러

덤벨로퍼 2020. 8. 13. 09:36

flutter 공식 webview 패키지를 사용하는경우 

어떤 url 에서는 잘동작하나 어떤 url 에서는 그냥 흰 화면만 뜨고 동작하지 않는경우가있다.

https://pub.dev/packages/webview_flutter

 

webview_flutter | Flutter Package

A Flutter plugin that provides a WebView widget on Android and iOS.

pub.dev

이는 안드로이드 8~10 에서는 정상작동하나 6~7에서 이런 현상이일어났다.

모든 url에서 그런게아니고 특정 url 에서 일어난 현상이므로 각종 테스트를 한후에

 

해당 url 에서 ssl 인증에 에러가 났음을 확인할수있었다.

 

flutter webview 패키지에서는 안드로이드 자체의 webview를 사용하게 하고

안드로이드 6~7에서 사용중인 웹뷰는 SSL 에러가날경우 그냥 흰 화면이 보여지는것이다.

그래서 방법이없다.

 

대안으로는 2번째로 많이쓰고있는 webview 패키지인 flutter webview plugin 을사용하는것이다.

https://pub.dev/packages/flutter_webview_plugin

얘는 SSL 에러가날경우 이를 무시하는 옵션을 넣을수있다.

WebviewScaffold(
  url: widget.url,
  hidden: true,
  ignoreSSLErrors: true,

  invalidUrlRegex: Platform.isAndroid
  	? '^(?!https://|http://|about:blank|data:).+'
 	 : null,
);

 

ignoreSSLErros 를 true 로 설정해 SSL 에러를 무시하면 해당 에러를 해결할수있다.

 

Webview plugin 의 단점은 위젯 트리에 속해있지않아 스낵바노출 이나 다른 위젯을 그위에 띄울수없다는것이다.

 

개발자 이직 비법 보러가기