fix: parse route in order to make Getx compatible with http app links
Showing
1 changed file
with
8 additions
and
8 deletions
@@ -267,17 +267,17 @@ class ParseRouteTree { | @@ -267,17 +267,17 @@ class ParseRouteTree { | ||
267 | Map<String, String> _parseParams(String path, PathDecoded routePath) { | 267 | Map<String, String> _parseParams(String path, PathDecoded routePath) { |
268 | final params = <String, String>{}; | 268 | final params = <String, String>{}; |
269 | var idx = path.indexOf('?'); | 269 | var idx = path.indexOf('?'); |
270 | + final uri = Uri.tryParse(path); | ||
271 | + if (uri == null) return params; | ||
270 | if (idx > -1) { | 272 | if (idx > -1) { |
271 | - path = path.substring(0, idx); | ||
272 | - final uri = Uri.tryParse(path); | ||
273 | - if (uri != null) { | ||
274 | - params.addAll(uri.queryParameters); | ||
275 | - } | 273 | + params.addAll(uri.queryParameters); |
274 | + } | ||
275 | + var paramsMatch = routePath.regex.firstMatch(uri.path); | ||
276 | + if (paramsMatch == null) { | ||
277 | + return params; | ||
276 | } | 278 | } |
277 | - var paramsMatch = routePath.regex.firstMatch(path); | ||
278 | - | ||
279 | for (var i = 0; i < routePath.keys.length; i++) { | 279 | for (var i = 0; i < routePath.keys.length; i++) { |
280 | - var param = Uri.decodeQueryComponent(paramsMatch![i + 1]!); | 280 | + var param = Uri.decodeQueryComponent(paramsMatch[i + 1]!); |
281 | params[routePath.keys[i]!] = param; | 281 | params[routePath.keys[i]!] = param; |
282 | } | 282 | } |
283 | return params; | 283 | return params; |
-
Please register or login to post a comment