private void RespondToStaticCall(CefJavascriptStaticCallEvent cefEvent, string response) { SendEvent(new CefJavascriptResultEvent() { InstanceID = InstanceID, CallbackID = cefEvent.CallbackID, Result = response, }); }
public void ReceiveEvent(CefEvent cefEvent) { if (cefEvent is CefInstanceCreatedEvent) { Initialize(); return; } if (cefEvent is CefJavascriptResultEvent) { CefJavascriptResultEvent javascriptEvent = (CefJavascriptResultEvent)cefEvent; _jsCallbacks[javascriptEvent.CallbackID](javascriptEvent.Result); _jsCallbacks.Remove(javascriptEvent.CallbackID); return; } if (cefEvent is CefJavascriptStaticCallEvent) { CefJavascriptStaticCallEvent staticCallEvent = (CefJavascriptStaticCallEvent)cefEvent; try { string result = (string)GetType(staticCallEvent.Namespace).GetMethod(staticCallEvent.Method).Invoke(this, staticCallEvent.Arguments); RespondToStaticCall(staticCallEvent, result); } catch (Exception e) { Debug.LogError(e.Message); Debug.LogError(e.StackTrace); RespondToStaticCall(staticCallEvent, "error"); } return; } }
public void Invoke(string ns, string method, List <object> arguments, IJavascriptCallback callback) { List <string> stringArgs = new List <string>(); foreach (object argument in arguments) { stringArgs.Add((string)argument); } string callbackId = Guid.NewGuid().ToString(); CefJavascriptStaticCallEvent callEvent = new CefJavascriptStaticCallEvent() { InstanceID = _cefIntance.InstanceID, CallbackID = callbackId, Namespace = ns, Method = method, Arguments = stringArgs.ToArray(), }; _jsCallbacks[callbackId] = callback; Program.SendEvent(callEvent); }