[Flutter] Inappwebview google signin disallowed_useragent
플러터위에서 포팅된 하이브리드 앱에서, 구글 로그인시 disallowed_useragent 오류와 함께 구글 로그인이 진행되지 않았습니다. 구글은 기본 Webview의 구현 사용을 허용하지 않습니다. 따라서 WebView에 사용자 정의 UserAgent를 구현해야 합니다.
플러터에서 Inappwebview에서 UserAgent 구현은 간단합니다.
InAppWebViewGroupOptions options = InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
userAgent: 'random',
useShouldOverrideUrlLoading: true,
mediaPlaybackRequiresUserGesture: false,
transparentBackground: true),
android: AndroidInAppWebViewOptions(
useHybridComposition: true,
geolocationEnabled: true,
),
ios: IOSInAppWebViewOptions(
allowsInlineMediaPlayback: true,
));
불필요한 코드는 무시하고 userAgent: 'random' 부분이 핵심입니다.
InAppWebView(
key: webViewKey,
initialOptions: options,
pullToRefreshController: pullToRefreshController,
onWebViewCreated: (controller) {
webViewController = controller;
},
해당 옵션값만 Inappwebview에 추가하면 아주 간단하게 해결됩니다.