From 104576ad318ab84ac6314365b339b616e97ec821 Mon Sep 17 00:00:00 2001 From: David Britch Date: Tue, 18 Feb 2025 10:07:38 +0000 Subject: [PATCH] Async support. --- .../HybridWebViewDemo/MainPage.xaml.cs | 30 ++++++++++++++++++ .../Resources/Raw/wwwroot/index.html | 31 ++++++++++++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/9.0/UserInterface/Views/HybridWebViewDemo/HybridWebViewDemo/MainPage.xaml.cs b/9.0/UserInterface/Views/HybridWebViewDemo/HybridWebViewDemo/MainPage.xaml.cs index 12ce64cb2..50a934543 100644 --- a/9.0/UserInterface/Views/HybridWebViewDemo/HybridWebViewDemo/MainPage.xaml.cs +++ b/9.0/UserInterface/Views/HybridWebViewDemo/HybridWebViewDemo/MainPage.xaml.cs @@ -87,6 +87,36 @@ public SyncReturn DoSyncWorkParamsReturn(int i, string s) }; } + public async Task DoAsyncWork() + { + Debug.WriteLine("DoAsyncWork"); + await Task.Delay(1000); + } + + public async Task DoAsyncWorkParams(int i, string s) + { + Debug.WriteLine($"DoAsyncWorkParams: {i}, {s}"); + await Task.Delay(1000); + } + + public async Task DoAsyncWorkReturn() + { + Debug.WriteLine("DoAsyncWorkReturn"); + await Task.Delay(1000); + return "Hello from C#!"; + } + + public async Task DoAsyncWorkParamsReturn(int i, string s) + { + Debug.WriteLine($"DoAsyncWorkParamsReturn: {i}, {s}"); + await Task.Delay(1000); + return new SyncReturn + { + Message = "Hello from C#!" + s, + Value = i + }; + } + public class ComputationResult { public double result { get; set; } diff --git a/9.0/UserInterface/Views/HybridWebViewDemo/HybridWebViewDemo/Resources/Raw/wwwroot/index.html b/9.0/UserInterface/Views/HybridWebViewDemo/HybridWebViewDemo/Resources/Raw/wwwroot/index.html index d0b48f664..f879d7e44 100644 --- a/9.0/UserInterface/Views/HybridWebViewDemo/HybridWebViewDemo/Resources/Raw/wwwroot/index.html +++ b/9.0/UserInterface/Views/HybridWebViewDemo/HybridWebViewDemo/Resources/Raw/wwwroot/index.html @@ -44,7 +44,6 @@ return jsonData; } - async function InvokeDoSyncWork() { LogMessage("Invoking DoSyncWork"); await window.HybridWebView.InvokeDotNet('DoSyncWork'); @@ -69,6 +68,30 @@ LogMessage("Invoked DoSyncWorkParamsReturn, return value: message=" + retValue.Message + ", value=" + retValue.Value); } + async function InvokeDoAsyncWork() { + LogMessage("Invoking DoAsyncWork"); + await window.HybridWebView.InvokeDotNet('DoAsyncWork'); + LogMessage("Invoked DoAsyncWork"); + } + + async function InvokeDoAsyncWorkParams() { + LogMessage("Invoking DoAsyncWorkParams"); + await window.HybridWebView.InvokeDotNet('DoAsyncWorkParams', [123, 'hello']); + LogMessage("Invoked DoAsyncWorkParams"); + } + + async function InvokeDoAsyncWorkReturn() { + LogMessage("Invoking DoAsyncWorkReturn"); + const retValue = await window.HybridWebView.InvokeDotNet('DoAsyncWorkReturn'); + LogMessage("Invoked DoAsyncWorkReturn, return value: " + retValue); + } + + async function InvokeDoAsyncWorkParamsReturn() { + LogMessage("Invoking DoAsyncWorkParamsReturn"); + const retValue = await window.HybridWebView.InvokeDotNet('DoAsyncWorkParamsReturn', [123, 'hello']); + LogMessage("Invoked DoAsyncWorkParamsReturn, return value: message=" + retValue.Message + ", value=" + retValue.Value); + } + @@ -84,6 +107,12 @@ +
+ + + + +
Log: