requestCode method
Implementation
Future<String?> requestCode() async {
var code;
final String urlParams = _constructUrlParams();
if (_config.context != null) {
String initialURL =
("${_authorizationRequest.url}?$urlParams").replaceAll(" ", "%20");
var web = WebView(
initialUrl: initialURL,
javascriptMode: JavascriptMode.unrestricted,
onPageFinished: (url) {
Uri uri = Uri.parse(url);
if (uri.queryParameters["error"] != null) {
Navigator.of(_config.context!).pop();
throw new Exception("Access denied or authentation canceled.");
}
if (uri.queryParameters["code"] != null) {
Navigator.of(_config.context!).pop();
_onCodeListener.add(uri.queryParameters["code"]);
}
},
);
await Navigator.of(_config.context!).push(MaterialPageRoute(
builder: (context) => Scaffold(
body: SafeArea(child: web),
)));
} else {
throw Exception("Context is null. Please call setContext(context).");
}
code = await _onCode.first;
return code;
}