using System; using System.Threading.Tasks; namespace Wino.Core.UWP.Extensions; public static class WebViewExtensions { /// /// Executes a script function in the WebView2 control. /// /// Weird parameter that needed in mailRendering page. TODO: should be reconsidered. /// Parameters should be serialized to json public static async Task ExecuteScriptFunctionAsync(this Microsoft.UI.Xaml.Controls.WebView2 Chromium, string functionName, bool isChromiumDisposed = false, params string[] parameters) { string script = functionName + "(" + string.Join(", ", parameters) + ");"; return isChromiumDisposed ? string.Empty : await Chromium.ExecuteScriptAsync(script); } public static async Task ExecuteScriptFunctionSafeAsync(this Microsoft.UI.Xaml.Controls.WebView2 Chromium, string functionName, params string[] parameters) { if (Chromium == null) return string.Empty; try { return await Chromium.ExecuteScriptFunctionAsync(functionName, parameters: parameters); } catch { } return string.Empty; } }