@@ -144,6 +144,14 @@ private static void HookWithMessengerTestCode(WebViewMessenger messenger)
144
144
var result_callback2 = await messenger . InvokePeerMethodAsync < string > ( "js_callback2" , 1 , 2 , callback2 ) ;
145
145
Trace . WriteLine ( $ "js_callback2: { result_callback2 } ") ;
146
146
147
+ // Test .NET --> JavaScript class member
148
+ var result_jscalc_add = await messenger . InvokePeerMethodAsync < int > (
149
+ "jscalc.add" , 1 , 2 ) ;
150
+ Trace . WriteLine ( $ "jscalc.add: { result_jscalc_add } ") ;
151
+ var result_jscalc_sub = await messenger . InvokePeerMethodAsync < int > (
152
+ "jscalc.sub" , 1 , 2 ) ;
153
+ Trace . WriteLine ( $ "jscalc.sub: { result_jscalc_sub } ") ;
154
+
147
155
Trace . WriteLine ( "ALL TEST IS DONE AT .NET SIDE." ) ;
148
156
} ;
149
157
}
@@ -163,6 +171,12 @@ public static void AddTestJavaScriptCode(StringBuilder script)
163
171
script . AppendLine ( "async function js_callback2(a, b, cb) { return await cb(a, b, new CancellationToken()); }" ) ;
164
172
script . AppendLine ( "async function js_delay(v, ct) { await delay(v, ct); return v.toString(); }" ) ;
165
173
174
+ script . AppendLine ( "class JSCalculator {" ) ;
175
+ script . AppendLine ( " async add(a, b) { return a + b; }" ) ;
176
+ script . AppendLine ( " async sub(a, b) { return a - b; }" ) ;
177
+ script . AppendLine ( "};" ) ;
178
+ script . AppendLine ( "var jscalc = new JSCalculator();" ) ;
179
+
166
180
// Invoke JavaScript --> .NET methods:
167
181
script . AppendLine ( "var tester = async () => {" ) ;
168
182
script . AppendLine ( " const result_add = await invokeHostMethod('add', 1, 2);" ) ;
0 commit comments