[Android] Fix for WebView Fails to Load URLs with Certain Encoded Characters #27003
+81
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Root Cause
The root cause of the issue is the use of
Uri.IsWellFormedUriString
for validating URLs in the WebView control. This method applies overly strict checks, including theIsWellFormedOriginalString
test, which can incorrectly reject valid URLs, especially those containing encoded characters or international characters. This leads to improper handling of certain valid URLs, causing them to be treated as relative paths instead of absolute URLs.Description of Change
In the WebView control, the URL validation logic in
MauiWebView.LoadUrl
has been updated to replaceUri.IsWellFormedUriString
withUri.TryCreate
. This change ensures that a wider range of valid URLs, including those with encoded and international characters, are correctly handled as absolute URLs.Issues Fixed
Fixes #26843
Fixes #23767
Fixes #23690
Tested the behaviour in the following platforms
Screenshots