コード例 #1
0
        /// <summary>
        /// The create.
        /// </summary>
        /// <param name="windowInfo">
        /// The window info.
        /// </param>
        public void Create(CefWindowInfo windowInfo)
        {
            if (this.mClient == null)
            {
                IoC.RegisterInstance(typeof(CefGlueBrowser), typeof(CefGlueBrowser).FullName, this);
                this.mClient = new CefGlueClient(CefGlueClientParams.Create(this));
            }

            CefBrowserHost.CreateBrowser(windowInfo, this.mClient, this.mSettings, this.StartUrl);
        }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CefGlueClient"/> class.
 /// </summary>
 /// <param name="clientParams">
 /// The client params.
 /// </param>
 public CefGlueClient(CefGlueClientParams clientParams)
 {
     this.Core                = clientParams.Browser;
     this.mLifeSpanHandler    = clientParams.LifeSpanHandler;
     this.mLoadHandler        = clientParams.LoadHandler;
     this.mRequestHandler     = clientParams.RequestHandler;
     this.mDisplayHandler     = clientParams.DisplayHandler;
     this.mContextMenuHandler = clientParams.ContextMenuHandler;
     this.mFocusHandler       = clientParams.FocusHandler;
     this.mKeyboardHandler    = clientParams.KeyboardHandler;
     this.mJsDialogHandler    = clientParams.JsDialogHandler;
     this.mDialogHandler      = clientParams.DialogHandler;
     this.mDragHandler        = clientParams.DragHandler;
     //this.mGeolocationHandler = clientParams.GeolocationHandler;
     this.mDownloadHandler = clientParams.DownloadHandler;
     this.mFindHandler     = clientParams.FindHandler;
 }
コード例 #3
0
        /// <summary>
        /// The create.
        /// </summary>
        /// <param name="browser">
        /// The browser.
        /// </param>
        /// <returns>
        /// The <see cref="CefGlueClientParams"/>.
        /// </returns>
        public static CefGlueClientParams Create(CefGlueBrowser browser)
        {
            var clientParams = new CefGlueClientParams {
                Browser = browser
            };

            try
            {
                foreach (var enumKey in CefHandlerFakeTypes.GetAllHandlerKeys())
                {
                    object instance = null;

                    var service = CefHandlerFakeTypes.GetHandlerType(enumKey);
                    var keyStr  = enumKey.EnumToString();
                    try
                    {
                        if (IoC.IsRegistered(service, keyStr))
                        {
                            instance = IoC.GetInstance(service, keyStr);
                        }
                    }
                    catch (Exception exception)
                    {
                        Log.Error(exception);
                    }

                    switch (enumKey)
                    {
                    case CefHandlerKey.LifeSpanHandler:
                        if (instance is CefLifeSpanHandler spanHandler)
                        {
                            clientParams.LifeSpanHandler = spanHandler;
                        }
                        else
                        {
                            clientParams.LifeSpanHandler = new CefGlueLifeSpanHandler();
                        }

                        break;

                    case CefHandlerKey.LoadHandler:
                        if (instance is CefLoadHandler loadHandler)
                        {
                            clientParams.LoadHandler = loadHandler;
                        }
                        else
                        {
                            clientParams.LoadHandler = new CefGlueLoadHandler();
                        }

                        break;

                    case CefHandlerKey.RequestHandler:
                        if (instance is CefRequestHandler requestHandler)
                        {
                            clientParams.RequestHandler = requestHandler;
                        }
                        else
                        {
                            clientParams.RequestHandler = new CefGlueRequestHandler();
                        }

                        break;

                    case CefHandlerKey.DisplayHandler:
                        if (instance is CefDisplayHandler displayHandler)
                        {
                            clientParams.DisplayHandler = displayHandler;
                        }
                        else
                        {
                            clientParams.DisplayHandler = new CefGlueDisplayHandler();
                        }

                        break;

                    case CefHandlerKey.ContextMenuHandler:
                        if (instance is CefContextMenuHandler menuHandler)
                        {
                            clientParams.ContextMenuHandler = menuHandler;
                        }
                        else
                        {
                            clientParams.ContextMenuHandler = new CefGlueContextMenuHandler();
                        }

                        break;

                    case CefHandlerKey.FocusHandler:
                        if (instance is CefFocusHandler focusHandler)
                        {
                            clientParams.FocusHandler = focusHandler;
                        }
                        else
                        {
                            clientParams.FocusHandler = new CefGlueFocusHandler();
                        }

                        break;

                    case CefHandlerKey.KeyboardHandler:
                        if (instance is CefKeyboardHandler keyboardHandler)
                        {
                            clientParams.KeyboardHandler = keyboardHandler;
                        }
                        else
                        {
                            clientParams.KeyboardHandler = new CefGlueKeyboardHandler();
                        }

                        break;

                    case CefHandlerKey.JsDialogHandler:
                        if (instance is CefJSDialogHandler jsDialogHandler)
                        {
                            clientParams.JsDialogHandler = jsDialogHandler;
                        }
                        else
                        {
                            clientParams.JsDialogHandler = new CefGlueJSDialogHandler();
                        }

                        break;

                    case CefHandlerKey.DialogHandler:
                        if (instance is CefDialogHandler dialogHandler)
                        {
                            clientParams.DialogHandler = dialogHandler;
                        }
                        else
                        {
                            clientParams.DialogHandler = new CefGlueDialogHandler();
                        }

                        break;

                    case CefHandlerKey.DragHandler:
                        if (instance is CefDragHandler dragHandler)
                        {
                            clientParams.DragHandler = dragHandler;
                        }
                        else
                        {
                            clientParams.DragHandler = new CefGlueDragHandler();
                        }

                        break;

                    //case CefHandlerKey.GeolocationHandler:
                    //if (instance is CefGeolocationHandler geolocationHandler)
                    //{
                    //    clientParams.GeolocationHandler = geolocationHandler;
                    //}
                    //else
                    //{
                    //    clientParams.GeolocationHandler = new CefGlueGeolocationHandler();
                    //}

                    //break;

                    case CefHandlerKey.DownloadHandler:
                        if (instance is CefDownloadHandler downloadHandler)
                        {
                            clientParams.DownloadHandler = downloadHandler;
                        }
                        else
                        {
                            clientParams.DownloadHandler = new CefGlueDownloadHandler();
                        }

                        break;

                    case CefHandlerKey.FindHandler:
                        if (instance is CefFindHandler handler)
                        {
                            clientParams.FindHandler = handler;
                        }
                        else
                        {
                            clientParams.FindHandler = new CefGlueFindHandler();
                        }

                        break;
                    }
                }
            }
            catch (Exception exception)
            {
                Log.Error(exception);
            }

            return(clientParams);
        }