コード例 #1
0
 private void RespondToStaticCall(CefJavascriptStaticCallEvent cefEvent, string response)
 {
     SendEvent(new CefJavascriptResultEvent()
     {
         InstanceID = InstanceID,
         CallbackID = cefEvent.CallbackID,
         Result     = response,
     });
 }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        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);
        }