diff --git a/src/Controls/src/Core/HybridWebView/HybridWebView.cs b/src/Controls/src/Core/HybridWebView/HybridWebView.cs index 884bcb35171f..f93258cf6e81 100644 --- a/src/Controls/src/Core/HybridWebView/HybridWebView.cs +++ b/src/Controls/src/Core/HybridWebView/HybridWebView.cs @@ -80,6 +80,35 @@ public void SendRawMessage(string rawMessage) }); } + /// + /// TODO: make this public for .NET 10 (or a .NET 9 SR) + internal async Task InvokeJavaScriptAsync( + string methodName, + object?[]? paramValues = null, + JsonTypeInfo?[]? paramJsonTypeInfos = null) + { + if (string.IsNullOrEmpty(methodName)) + { + throw new ArgumentException($"The method name cannot be null or empty.", nameof(methodName)); + } + if (paramValues != null && paramJsonTypeInfos == null) + { + throw new ArgumentException($"The parameter values were provided, but the parameter JSON type infos were not.", nameof(paramJsonTypeInfos)); + } + if (paramValues == null && paramJsonTypeInfos != null) + { + throw new ArgumentException($"The parameter JSON type infos were provided, but the parameter values were not.", nameof(paramValues)); + } + if (paramValues != null && paramValues.Length != paramJsonTypeInfos!.Length) + { + throw new ArgumentException($"The number of parameter values does not match the number of parameter JSON type infos.", nameof(paramValues)); + } + + await Handler?.InvokeAsync( + nameof(IHybridWebView.InvokeJavaScriptAsync), + new HybridWebViewInvokeJavaScriptRequest(methodName, null, paramValues, paramJsonTypeInfos))!; + } + /// public async Task InvokeJavaScriptAsync( string methodName, diff --git a/src/Controls/tests/DeviceTests/Elements/HybridWebView/HybridWebViewTests.cs b/src/Controls/tests/DeviceTests/Elements/HybridWebView/HybridWebViewTests.cs index c78e24bb5a44..a1c9fb5ec476 100644 --- a/src/Controls/tests/DeviceTests/Elements/HybridWebView/HybridWebViewTests.cs +++ b/src/Controls/tests/DeviceTests/Elements/HybridWebView/HybridWebViewTests.cs @@ -276,6 +276,69 @@ public Task InvokeAsyncJavaScriptMethodWithParametersAndComplexResult() => Assert.Equal(s2, result[s1]); }); + [Fact] + public Task InvokeJavaScriptMethodWithParametersAndVoidReturn() => + RunTest(async (hybridWebView) => + { + var x = 123.456m; + var y = 654.321m; + + await hybridWebView.InvokeJavaScriptAsync( + "EvaluateMeWithParamsAndVoidReturn", + [x, y], + [HybridWebViewTestContext.Default.Decimal, HybridWebViewTestContext.Default.Decimal]); + + var result = await hybridWebView.InvokeJavaScriptAsync( + "EvaluateMeWithParamsAndVoidReturnGetResult", + HybridWebViewTestContext.Default.Decimal); + + Assert.Equal(777.777m, result); + }); + + [Fact] + public Task InvokeJavaScriptMethodWithParametersAndVoidReturnUsingObjectReturnMethod() => + RunTest(async (hybridWebView) => + { + var x = 123.456m; + var y = 654.321m; + + var firstResult = await hybridWebView.InvokeJavaScriptAsync( + "EvaluateMeWithParamsAndVoidReturn", + HybridWebViewTestContext.Default.ComputationResult, + [x, y], + [HybridWebViewTestContext.Default.Decimal, HybridWebViewTestContext.Default.Decimal]); + + Assert.Null(firstResult); + + var result = await hybridWebView.InvokeJavaScriptAsync( + "EvaluateMeWithParamsAndVoidReturnGetResult", + HybridWebViewTestContext.Default.Decimal); + + Assert.Equal(777.777m, result); + }); + + [Fact] + public Task InvokeJavaScriptMethodWithParametersAndVoidReturnUsingNullReturnMethod() => + RunTest(async (hybridWebView) => + { + var x = 123.456m; + var y = 654.321m; + + var firstResult = await hybridWebView.InvokeJavaScriptAsync( + "EvaluateMeWithParamsAndVoidReturn", + null, + [x, y], + [HybridWebViewTestContext.Default.Decimal, HybridWebViewTestContext.Default.Decimal]); + + Assert.Null(firstResult); + + var result = await hybridWebView.InvokeJavaScriptAsync( + "EvaluateMeWithParamsAndVoidReturnGetResult", + HybridWebViewTestContext.Default.Decimal); + + Assert.Equal(777.777m, result); + }); + [Fact] public Task EvaluateJavaScriptAndGetResult() => RunTest(async (hybridWebView) => diff --git a/src/Controls/tests/DeviceTests/Resources/Raw/HybridTestRoot/index.html b/src/Controls/tests/DeviceTests/Resources/Raw/HybridTestRoot/index.html index 82a1c5a70e41..732e2035e86a 100644 --- a/src/Controls/tests/DeviceTests/Resources/Raw/HybridTestRoot/index.html +++ b/src/Controls/tests/DeviceTests/Resources/Raw/HybridTestRoot/index.html @@ -49,6 +49,16 @@ }; return result; } + + // test method invoke with simple parameters and no return value + function EvaluateMeWithParamsAndVoidReturn(a, b) { + window.EvaluateMeWithParamsAndVoidReturnResult = a + b; + } + function EvaluateMeWithParamsAndVoidReturnGetResult() { + var result = window.EvaluateMeWithParamsAndVoidReturnResult; + window.EvaluateMeWithParamsAndVoidReturnResult = undefined; + return result; + } // test async method invoke with parameters, and returning complex type async function EvaluateMeWithParamsAndAsyncReturn(s1, s2) { diff --git a/src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.cs b/src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.cs index dbc47653beb6..7f6857d45013 100644 --- a/src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.cs +++ b/src/Core/src/Handlers/HybridWebView/HybridWebViewHandler.cs @@ -339,10 +339,17 @@ await handler.InvokeAsync(nameof(IHybridWebView.EvaluateJavaScriptAsync), var stringResult = await callback.Task; - if (stringResult is null) + // if there is no result or if the result was null/undefined, then treat it as null + if (stringResult is null || stringResult == "null" || stringResult == "undefined") { invokeJavaScriptRequest.SetResult(null); } + // if we are not looking for a return object, then return null + else if (invokeJavaScriptRequest.ReturnTypeJsonTypeInfo is null) + { + invokeJavaScriptRequest.SetResult(null); + } + // if we are expecting a result, then deserialize what we have else { var typedResult = JsonSerializer.Deserialize(stringResult, invokeJavaScriptRequest.ReturnTypeJsonTypeInfo); diff --git a/src/Core/src/Primitives/HybridWebViewInvokeJavaScriptRequest.cs b/src/Core/src/Primitives/HybridWebViewInvokeJavaScriptRequest.cs index 37d4fb1880e2..f130fbf2d373 100644 --- a/src/Core/src/Primitives/HybridWebViewInvokeJavaScriptRequest.cs +++ b/src/Core/src/Primitives/HybridWebViewInvokeJavaScriptRequest.cs @@ -3,11 +3,11 @@ namespace Microsoft.Maui { - public class HybridWebViewInvokeJavaScriptRequest(string methodName, JsonTypeInfo returnTypeJsonTypeInfo, object?[]? paramValues, JsonTypeInfo?[]? paramJsonTypeInfos) + public class HybridWebViewInvokeJavaScriptRequest(string methodName, JsonTypeInfo? returnTypeJsonTypeInfo, object?[]? paramValues, JsonTypeInfo?[]? paramJsonTypeInfos) : TaskCompletionSource { public string MethodName { get; } = methodName; - public JsonTypeInfo ReturnTypeJsonTypeInfo { get; } = returnTypeJsonTypeInfo; + public JsonTypeInfo? ReturnTypeJsonTypeInfo { get; } = returnTypeJsonTypeInfo; public object?[]? ParamValues { get; } = paramValues; public JsonTypeInfo?[]? ParamJsonTypeInfos { get; } = paramJsonTypeInfos; } diff --git a/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt index b321ce001d0b..9f06d38a5b2c 100644 --- a/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt @@ -13,11 +13,11 @@ Microsoft.Maui.Handlers.IHybridWebViewHandler.PlatformView.get -> Android.Webkit Microsoft.Maui.Handlers.IHybridWebViewHandler.VirtualView.get -> Microsoft.Maui.IHybridWebView! Microsoft.Maui.Hosting.HybridWebViewServiceCollectionExtensions Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo? returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.MethodName.get -> string! Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamJsonTypeInfos.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamValues.get -> object?[]? -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo! +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo? Microsoft.Maui.HybridWebViewRawMessage Microsoft.Maui.HybridWebViewRawMessage.HybridWebViewRawMessage() -> void Microsoft.Maui.HybridWebViewRawMessage.Message.get -> string? diff --git a/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt index 06e9880d31fb..10f7e317afed 100644 --- a/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt @@ -13,11 +13,11 @@ Microsoft.Maui.Handlers.IHybridWebViewHandler.PlatformView.get -> WebKit.WKWebVi Microsoft.Maui.Handlers.IHybridWebViewHandler.VirtualView.get -> Microsoft.Maui.IHybridWebView! Microsoft.Maui.Hosting.HybridWebViewServiceCollectionExtensions Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo? returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.MethodName.get -> string! Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamJsonTypeInfos.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamValues.get -> object?[]? -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo! +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo? Microsoft.Maui.HybridWebViewRawMessage Microsoft.Maui.HybridWebViewRawMessage.HybridWebViewRawMessage() -> void Microsoft.Maui.HybridWebViewRawMessage.Message.get -> string? diff --git a/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt index 06e9880d31fb..10f7e317afed 100644 --- a/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt @@ -13,11 +13,11 @@ Microsoft.Maui.Handlers.IHybridWebViewHandler.PlatformView.get -> WebKit.WKWebVi Microsoft.Maui.Handlers.IHybridWebViewHandler.VirtualView.get -> Microsoft.Maui.IHybridWebView! Microsoft.Maui.Hosting.HybridWebViewServiceCollectionExtensions Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo? returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.MethodName.get -> string! Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamJsonTypeInfos.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamValues.get -> object?[]? -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo! +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo? Microsoft.Maui.HybridWebViewRawMessage Microsoft.Maui.HybridWebViewRawMessage.HybridWebViewRawMessage() -> void Microsoft.Maui.HybridWebViewRawMessage.Message.get -> string? diff --git a/src/Core/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt index 6e3939ec4fd4..ede8897432dd 100644 --- a/src/Core/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt @@ -13,11 +13,11 @@ Microsoft.Maui.Handlers.IHybridWebViewHandler.PlatformView.get -> Tizen.NUI.Base Microsoft.Maui.Handlers.IHybridWebViewHandler.VirtualView.get -> Microsoft.Maui.IHybridWebView! Microsoft.Maui.Hosting.HybridWebViewServiceCollectionExtensions Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo? returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.MethodName.get -> string! Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamJsonTypeInfos.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamValues.get -> object?[]? -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo! +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo? Microsoft.Maui.HybridWebViewRawMessage Microsoft.Maui.HybridWebViewRawMessage.HybridWebViewRawMessage() -> void Microsoft.Maui.HybridWebViewRawMessage.Message.get -> string? diff --git a/src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt index 415d7a580c21..ff5ecdbc7010 100644 --- a/src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt @@ -13,11 +13,11 @@ Microsoft.Maui.Handlers.IHybridWebViewHandler.PlatformView.get -> Microsoft.UI.X Microsoft.Maui.Handlers.IHybridWebViewHandler.VirtualView.get -> Microsoft.Maui.IHybridWebView! Microsoft.Maui.Hosting.HybridWebViewServiceCollectionExtensions Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo? returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.MethodName.get -> string! Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamJsonTypeInfos.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamValues.get -> object?[]? -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo! +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo? Microsoft.Maui.HybridWebViewRawMessage Microsoft.Maui.HybridWebViewRawMessage.HybridWebViewRawMessage() -> void Microsoft.Maui.HybridWebViewRawMessage.Message.get -> string? diff --git a/src/Core/src/PublicAPI/net/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net/PublicAPI.Unshipped.txt index 8f3d85f43b4e..e54989d8a78e 100644 --- a/src/Core/src/PublicAPI/net/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net/PublicAPI.Unshipped.txt @@ -13,11 +13,11 @@ Microsoft.Maui.Handlers.IHybridWebViewHandler.PlatformView.get -> object! Microsoft.Maui.Handlers.IHybridWebViewHandler.VirtualView.get -> Microsoft.Maui.IHybridWebView! Microsoft.Maui.Hosting.HybridWebViewServiceCollectionExtensions Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo? returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.MethodName.get -> string! Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamJsonTypeInfos.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamValues.get -> object?[]? -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo! +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo? Microsoft.Maui.HybridWebViewRawMessage Microsoft.Maui.HybridWebViewRawMessage.HybridWebViewRawMessage() -> void Microsoft.Maui.HybridWebViewRawMessage.Message.get -> string? diff --git a/src/Core/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt index 8f3d85f43b4e..e54989d8a78e 100644 --- a/src/Core/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt @@ -13,11 +13,11 @@ Microsoft.Maui.Handlers.IHybridWebViewHandler.PlatformView.get -> object! Microsoft.Maui.Handlers.IHybridWebViewHandler.VirtualView.get -> Microsoft.Maui.IHybridWebView! Microsoft.Maui.Hosting.HybridWebViewServiceCollectionExtensions Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo? returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.MethodName.get -> string! Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamJsonTypeInfos.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamValues.get -> object?[]? -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo! +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo? Microsoft.Maui.HybridWebViewRawMessage Microsoft.Maui.HybridWebViewRawMessage.HybridWebViewRawMessage() -> void Microsoft.Maui.HybridWebViewRawMessage.Message.get -> string? diff --git a/src/Core/src/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt index 8f3d85f43b4e..e54989d8a78e 100644 --- a/src/Core/src/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt @@ -13,11 +13,11 @@ Microsoft.Maui.Handlers.IHybridWebViewHandler.PlatformView.get -> object! Microsoft.Maui.Handlers.IHybridWebViewHandler.VirtualView.get -> Microsoft.Maui.IHybridWebView! Microsoft.Maui.Hosting.HybridWebViewServiceCollectionExtensions Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo! returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.HybridWebViewInvokeJavaScriptRequest(string! methodName, System.Text.Json.Serialization.Metadata.JsonTypeInfo? returnTypeJsonTypeInfo, object?[]? paramValues, System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? paramJsonTypeInfos) -> void Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.MethodName.get -> string! Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamJsonTypeInfos.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo?[]? Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ParamValues.get -> object?[]? -Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo! +Microsoft.Maui.HybridWebViewInvokeJavaScriptRequest.ReturnTypeJsonTypeInfo.get -> System.Text.Json.Serialization.Metadata.JsonTypeInfo? Microsoft.Maui.HybridWebViewRawMessage Microsoft.Maui.HybridWebViewRawMessage.HybridWebViewRawMessage() -> void Microsoft.Maui.HybridWebViewRawMessage.Message.get -> string?