From 026e046b3c2d24d6647260a55efae5470832cd1e Mon Sep 17 00:00:00 2001 From: Eilon Lipton Date: Thu, 15 Aug 2024 14:16:52 -0700 Subject: [PATCH] HybridWebView: Invoke JS methods from .NET (#23769) Fixes #22303 --- .../Pages/Controls/HybridWebViewPage.xaml | 29 +- .../Pages/Controls/HybridWebViewPage.xaml.cs | 69 ++++- .../Raw/HybridSamplePage/asyncdata.txt | 4 + .../Resources/Raw/HybridSamplePage/index.html | 28 +- .../HybridSamplePage/scripts/HybridWebView.js | 94 ++++-- .../src/Core/HybridWebView/HybridWebView.cs | 211 ++++++++++++- .../net-android/PublicAPI.Unshipped.txt | 3 + .../PublicAPI/net-ios/PublicAPI.Unshipped.txt | 3 + .../net-maccatalyst/PublicAPI.Unshipped.txt | 3 + .../net-tizen/PublicAPI.Unshipped.txt | 3 + .../net-windows/PublicAPI.Unshipped.txt | 3 + .../PublicAPI/net/PublicAPI.Unshipped.txt | 3 + .../netstandard/PublicAPI.Unshipped.txt | 3 + src/Controls/src/Core/WebView/WebView.cs | 2 +- .../HybridWebView/HybridWebViewTests.cs | 281 +++++++++++++++++- .../Raw/HybridTestRoot/asyncdata.txt | 4 + .../Resources/Raw/HybridTestRoot/index.html | 43 ++- .../HybridTestRoot/scripts/HybridWebView.js | 94 ++++-- src/Core/src/Core/IHybridWebView.cs | 19 +- .../HybridWebViewHandler.Android.cs | 21 +- .../HybridWebViewHandler.Standard.cs | 2 + .../HybridWebViewHandler.Tizen.cs | 2 + .../HybridWebViewHandler.Windows.cs | 60 +++- .../HybridWebView/HybridWebViewHandler.cs | 3 +- .../HybridWebView/HybridWebViewHandler.iOS.cs | 26 +- .../src/Platform/Windows/MauiHybridWebView.cs | 12 + .../src/Primitives/HybridWebViewRawMessage.cs | 13 + .../net-android/PublicAPI.Unshipped.txt | 8 +- .../PublicAPI/net-ios/PublicAPI.Unshipped.txt | 8 +- .../net-maccatalyst/PublicAPI.Unshipped.txt | 8 +- .../net-tizen/PublicAPI.Unshipped.txt | 8 +- .../net-windows/PublicAPI.Unshipped.txt | 9 +- .../src/PublicAPI/net/PublicAPI.Unshipped.txt | 8 +- .../netstandard/PublicAPI.Unshipped.txt | 8 +- .../netstandard2.0/PublicAPI.Unshipped.txt | 8 +- 35 files changed, 968 insertions(+), 135 deletions(-) create mode 100644 src/Controls/samples/Controls.Sample/Resources/Raw/HybridSamplePage/asyncdata.txt create mode 100644 src/Controls/tests/DeviceTests/Resources/Raw/HybridTestRoot/asyncdata.txt create mode 100644 src/Core/src/Primitives/HybridWebViewRawMessage.cs diff --git a/src/Controls/samples/Controls.Sample/Pages/Controls/HybridWebViewPage.xaml b/src/Controls/samples/Controls.Sample/Pages/Controls/HybridWebViewPage.xaml index 78779691808a..d0da4752a220 100644 --- a/src/Controls/samples/Controls.Sample/Pages/Controls/HybridWebViewPage.xaml +++ b/src/Controls/samples/Controls.Sample/Pages/Controls/HybridWebViewPage.xaml @@ -8,22 +8,39 @@ -