getQueryParameterFromUrl static method
Fetches the query parameter from the given url
. Returns null if none exist.
Implementation
static Map<String, dynamic>? getQueryParameterFromUrl(String url) {
var queryParameters = <String, dynamic>{};
var splitted = url.split('?');
if (splitted.length != 2) {
return null;
}
var query = splitted.elementAt(1);
var splittedQuery = query.split('&');
splittedQuery.forEach((String q) {
var pair = q.split('=');
var key = Uri.decodeFull(pair[0]);
var value = '';
if (pair.length > 1) {
value = Uri.decodeFull(pair[1]);
}
if (key.contains('[]')) {
if (queryParameters.containsKey(key)) {
List<dynamic> values = queryParameters[key];
values.add(value);
} else {
var values = [];
values.add(value);
queryParameters.putIfAbsent(key, () => values);
}
} else {
if (queryParameters.containsKey(key)) {
queryParameters.update(key, (value) => value);
} else {
queryParameters.putIfAbsent(key, () => value);
}
}
});
if (queryParameters.isEmpty) {
return null;
} else {
return queryParameters;
}
}