diff --git a/eng/AndroidX.targets b/eng/AndroidX.targets index b8c67a276737..0fb4ebd68ba8 100644 --- a/eng/AndroidX.targets +++ b/eng/AndroidX.targets @@ -61,5 +61,10 @@ Update="Xamarin.AndroidX.Window.WindowJava" Version="1.0.0.9" /> + + diff --git a/src/BlazorWebView/src/Maui/Android/AndroidWebKitWebViewManager.cs b/src/BlazorWebView/src/Maui/Android/AndroidWebKitWebViewManager.cs index 9def544942f8..42138d384be7 100644 --- a/src/BlazorWebView/src/Maui/Android/AndroidWebKitWebViewManager.cs +++ b/src/BlazorWebView/src/Maui/Android/AndroidWebKitWebViewManager.cs @@ -4,6 +4,7 @@ using System.Runtime.Versioning; using System.Threading.Tasks; using Android.Webkit; +using AndroidX.WebKit; using Microsoft.AspNetCore.Components.Web; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileProviders; @@ -16,7 +17,7 @@ namespace Microsoft.AspNetCore.Components.WebView.Maui /// An implementation of that uses the Android WebKit WebView browser control /// to render web content. /// - [SupportedOSPlatform("android23.0")] + [SupportedOSPlatform("android21.0")] internal class AndroidWebKitWebViewManager : WebViewManager { // Using an IP address means that WebView doesn't wait for any DNS resolution, @@ -63,7 +64,7 @@ protected override void NavigateCore(Uri absoluteUri) /// protected override void SendMessage(string message) { - _webview.PostWebMessage(new WebMessage(message), AndroidAppOriginUri); + WebViewCompat.PostWebMessage(_webview, new WebMessageCompat(message), AndroidAppOriginUri); } internal bool TryGetResponseContentInternal(string uri, bool allowFallbackOnHostPage, out int statusCode, out string statusMessage, out Stream content, out IDictionary headers) @@ -76,7 +77,7 @@ internal bool TryGetResponseContentInternal(string uri, bool allowFallbackOnHost internal void SetUpMessageChannel() { // These ports will be closed automatically when the webview gets disposed. - var nativeToJSPorts = _webview.CreateWebMessageChannel(); + var nativeToJSPorts = WebViewCompat.CreateWebMessageChannel(_webview); var nativeToJs = new BlazorWebMessageCallback(message => { @@ -87,10 +88,10 @@ internal void SetUpMessageChannel() nativeToJSPorts[0].SetWebMessageCallback(nativeToJs); - _webview.PostWebMessage(new WebMessage("capturePort", destPort), AndroidAppOriginUri); + WebViewCompat.PostWebMessage(_webview, new WebMessageCompat("capturePort", destPort), AndroidAppOriginUri); } - private class BlazorWebMessageCallback : WebMessagePort.WebMessageCallback + private class BlazorWebMessageCallback : WebMessagePortCompat.WebMessageCallbackCompat { private readonly Action _onMessageReceived; @@ -99,7 +100,7 @@ public BlazorWebMessageCallback(Action onMessageReceived) _onMessageReceived = onMessageReceived ?? throw new ArgumentNullException(nameof(onMessageReceived)); } - public override void OnMessage(WebMessagePort? port, WebMessage? message) + public override void OnMessage(WebMessagePortCompat? port, WebMessageCompat? message) { if (message is null) { @@ -108,6 +109,7 @@ public override void OnMessage(WebMessagePort? port, WebMessage? message) _onMessageReceived(message.Data); } + } } } diff --git a/src/BlazorWebView/src/Maui/Android/WebKitWebViewClient.cs b/src/BlazorWebView/src/Maui/Android/WebKitWebViewClient.cs index 0c3536ac46cb..c3f4ef0c9b74 100644 --- a/src/BlazorWebView/src/Maui/Android/WebKitWebViewClient.cs +++ b/src/BlazorWebView/src/Maui/Android/WebKitWebViewClient.cs @@ -8,7 +8,7 @@ namespace Microsoft.AspNetCore.Components.WebView.Maui { - [SupportedOSPlatform("android23.0")] + [SupportedOSPlatform("android21.0")] internal class WebKitWebViewClient : WebViewClient { // Using an IP address means that WebView doesn't wait for any DNS resolution, diff --git a/src/BlazorWebView/src/Maui/BlazorWebView.cs b/src/BlazorWebView/src/Maui/BlazorWebView.cs index 8f1dea9ab09b..756f761d8fcf 100644 --- a/src/BlazorWebView/src/Maui/BlazorWebView.cs +++ b/src/BlazorWebView/src/Maui/BlazorWebView.cs @@ -51,7 +51,7 @@ public BlazorWebView() /// #if ANDROID - [System.Runtime.Versioning.SupportedOSPlatform("android23.0")] + [System.Runtime.Versioning.SupportedOSPlatform("android21.0")] #elif IOS [System.Runtime.Versioning.SupportedOSPlatform("ios11.0")] #endif diff --git a/src/BlazorWebView/src/Maui/BlazorWebViewHandler.cs b/src/BlazorWebView/src/Maui/BlazorWebViewHandler.cs index 055c52a411d4..f94d30d46c8c 100644 --- a/src/BlazorWebView/src/Maui/BlazorWebViewHandler.cs +++ b/src/BlazorWebView/src/Maui/BlazorWebViewHandler.cs @@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Components.WebView.Maui { #if ANDROID - [SupportedOSPlatform("android23.0")] + [SupportedOSPlatform("android21.0")] #endif public partial class BlazorWebViewHandler { diff --git a/src/BlazorWebView/src/SharedSource/BlazorWebViewServiceCollectionExtensions.cs b/src/BlazorWebView/src/SharedSource/BlazorWebViewServiceCollectionExtensions.cs index 65765deacd7a..8accf7146b01 100644 --- a/src/BlazorWebView/src/SharedSource/BlazorWebViewServiceCollectionExtensions.cs +++ b/src/BlazorWebView/src/SharedSource/BlazorWebViewServiceCollectionExtensions.cs @@ -30,7 +30,7 @@ public static IWindowsFormsBlazorWebViewBuilder AddWindowsFormsBlazorWebView(thi public static IWpfBlazorWebViewBuilder AddWpfBlazorWebView(this IServiceCollection services) #elif WEBVIEW2_MAUI #if ANDROID - [System.Runtime.Versioning.SupportedOSPlatform("android23.0")] + [System.Runtime.Versioning.SupportedOSPlatform("android21.0")] #elif IOS [System.Runtime.Versioning.SupportedOSPlatform("ios11.0")] #endif