signInWithWebView method
Implementation
@override
Future<dynamic> signInWithWebView(BuildContext context) async {
bool isFinish = false;
return await Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => SocialSignInPageMobile(
url: authUrl(),
redirectUrl: redirectUrl,
userAgent: pageInfo.userAgent,
clearCache: pageInfo.clearCache,
title: pageInfo.title,
centerTitle: pageInfo.centerTitle,
onPageFinished: (String url) {
debugPrint(url);
if (isFinish) return;
if (url.contains("error=")) {
Navigator.of(context).pop(
Exception(Uri.parse(url).queryParameters["error"]),
);
} else if (url.startsWith(redirectUrl)) {
var uri = Uri.parse(url);
if (uri.queryParameters.containsKey('code') &&
uri.queryParameters.containsKey('state') &&
uri.queryParameters['state'] == stateCode) {
isFinish = true;
Navigator.of(context).pop(uri.queryParameters["code"]);
}
}
},
),
),
);
}