private void InjectBackend(IWebView current) { var loader = GetResourceReader("DebugTools.Window.dist"); var data = loader.Load("backend.js"); data = ";window.__neutronium_listener__.post('dev:injectDone');" + data; current.ExecuteJavaScript(data); }
private static Action <string, string> GetDispatchAction(IWebView target, Func <string, string, string> codeBuilder) { return((channel, message) => { var transformed = JavascriptNamer.GetCreateExpression(message); target.ExecuteJavaScript(codeBuilder($"'{channel}'", transformed)); }); }
private static Action <string, string> GetDispatchAction(IWebView target, Func <string, string, string> codeBuilder) { return((channel, message) => { var transformed = message.Replace(@"\", @"\\"); target.ExecuteJavaScript(codeBuilder($"'{channel}'", $"'{transformed}'")); }); }
public WebViewListener(IWebView webView) { _WebView = webView; _Listener = _WebView.Factory.CreateObject(false); _Listener.Bind("postMessage", _WebView, (e) => PostMessage(e[0].GetStringValue(), e[1].GetStringValue())); _WebView.GetGlobal().SetValue("__neutronium_listener__", _Listener, CreationOption.DontDelete | CreationOption.ReadOnly | CreationOption.DontEnum); var loader = new ResourceReader("Communication.script.dist", this); var data = loader.Load("communication.js"); _WebView.ExecuteJavaScript(data); }