Skip to content

[HybridWebView] Support calling void and "no return" functions in JS #27094

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jan 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions src/Controls/src/Core/HybridWebView/HybridWebView.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,35 @@ public void SendRawMessage(string rawMessage)
});
}

/// <inheritdoc/>
/// 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))!;
}

/// <inheritdoc/>
public async Task<TReturnType?> InvokeJavaScriptAsync<TReturnType>(
string methodName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<decimal>(
"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<ComputationResult>(
"EvaluateMeWithParamsAndVoidReturn",
HybridWebViewTestContext.Default.ComputationResult,
[x, y],
[HybridWebViewTestContext.Default.Decimal, HybridWebViewTestContext.Default.Decimal]);

Assert.Null(firstResult);

var result = await hybridWebView.InvokeJavaScriptAsync<decimal>(
"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<object>(
"EvaluateMeWithParamsAndVoidReturn",
null,
[x, y],
[HybridWebViewTestContext.Default.Decimal, HybridWebViewTestContext.Default.Decimal]);

Assert.Null(firstResult);

var result = await hybridWebView.InvokeJavaScriptAsync<decimal>(
"EvaluateMeWithParamsAndVoidReturnGetResult",
HybridWebViewTestContext.Default.Decimal);

Assert.Equal(777.777m, result);
});

[Fact]
public Task EvaluateJavaScriptAndGetResult() =>
RunTest(async (hybridWebView) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<object?>
{
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;
}
Expand Down
4 changes: 2 additions & 2 deletions src/Core/src/PublicAPI/net-android/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
4 changes: 2 additions & 2 deletions src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
4 changes: 2 additions & 2 deletions src/Core/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
4 changes: 2 additions & 2 deletions src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
4 changes: 2 additions & 2 deletions src/Core/src/PublicAPI/net/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
4 changes: 2 additions & 2 deletions src/Core/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand Down
Loading