Skip to content

Commit 434bbe0

Browse files
authored
Merge pull request #581 from dotnet/dabritch-hybridwebview-update
HybridWebView: async support
2 parents c84ea04 + bce79a1 commit 434bbe0

File tree

2 files changed

+60
-1
lines changed

2 files changed

+60
-1
lines changed

9.0/UserInterface/Views/HybridWebViewDemo/HybridWebViewDemo/MainPage.xaml.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,36 @@ public SyncReturn DoSyncWorkParamsReturn(int i, string s)
8787
};
8888
}
8989

90+
public async Task DoAsyncWork()
91+
{
92+
Debug.WriteLine("DoAsyncWork");
93+
await Task.Delay(1000);
94+
}
95+
96+
public async Task DoAsyncWorkParams(int i, string s)
97+
{
98+
Debug.WriteLine($"DoAsyncWorkParams: {i}, {s}");
99+
await Task.Delay(1000);
100+
}
101+
102+
public async Task<String> DoAsyncWorkReturn()
103+
{
104+
Debug.WriteLine("DoAsyncWorkReturn");
105+
await Task.Delay(1000);
106+
return "Hello from C#!";
107+
}
108+
109+
public async Task<SyncReturn> DoAsyncWorkParamsReturn(int i, string s)
110+
{
111+
Debug.WriteLine($"DoAsyncWorkParamsReturn: {i}, {s}");
112+
await Task.Delay(1000);
113+
return new SyncReturn
114+
{
115+
Message = "Hello from C#!" + s,
116+
Value = i
117+
};
118+
}
119+
90120
public class ComputationResult
91121
{
92122
public double result { get; set; }

9.0/UserInterface/Views/HybridWebViewDemo/HybridWebViewDemo/Resources/Raw/wwwroot/index.html

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
return jsonData;
4545
}
4646

47-
4847
async function InvokeDoSyncWork() {
4948
LogMessage("Invoking DoSyncWork");
5049
await window.HybridWebView.InvokeDotNet('DoSyncWork');
@@ -69,6 +68,30 @@
6968
LogMessage("Invoked DoSyncWorkParamsReturn, return value: message=" + retValue.Message + ", value=" + retValue.Value);
7069
}
7170

71+
async function InvokeDoAsyncWork() {
72+
LogMessage("Invoking DoAsyncWork");
73+
await window.HybridWebView.InvokeDotNet('DoAsyncWork');
74+
LogMessage("Invoked DoAsyncWork");
75+
}
76+
77+
async function InvokeDoAsyncWorkParams() {
78+
LogMessage("Invoking DoAsyncWorkParams");
79+
await window.HybridWebView.InvokeDotNet('DoAsyncWorkParams', [123, 'hello']);
80+
LogMessage("Invoked DoAsyncWorkParams");
81+
}
82+
83+
async function InvokeDoAsyncWorkReturn() {
84+
LogMessage("Invoking DoAsyncWorkReturn");
85+
const retValue = await window.HybridWebView.InvokeDotNet('DoAsyncWorkReturn');
86+
LogMessage("Invoked DoAsyncWorkReturn, return value: " + retValue);
87+
}
88+
89+
async function InvokeDoAsyncWorkParamsReturn() {
90+
LogMessage("Invoking DoAsyncWorkParamsReturn");
91+
const retValue = await window.HybridWebView.InvokeDotNet('DoAsyncWorkParamsReturn', [123, 'hello']);
92+
LogMessage("Invoked DoAsyncWorkParamsReturn, return value: message=" + retValue.Message + ", value=" + retValue.Value);
93+
}
94+
7295
</script>
7396
</head>
7497
<body>
@@ -84,6 +107,12 @@
84107
<button onclick="InvokeDoSyncWorkReturn()">Call C# method (no params) and get simple return value</button>
85108
<button onclick="InvokeDoSyncWorkParamsReturn()">Call C# method (params) and get complex return value</button>
86109
</div>
110+
<div>
111+
<button onclick="InvokeDoAsyncWork()">Call C# async method (no params)</button>
112+
<button onclick="InvokeDoAsyncWorkParams()">Call C# async method (params)</button>
113+
<button onclick="InvokeDoAsyncWorkReturn()">Call C# async method (no params) and get simple return value</button>
114+
<button onclick="InvokeDoAsyncWorkParamsReturn()">Call C# async method (params) and get complex return value</button>
115+
</div>
87116
<div>
88117
Log: <textarea readonly id="messageLog" style="width: 80%; height: 10em;"></textarea>
89118
</div>

0 commit comments

Comments
 (0)