/// <summary> /// The create web client. /// </summary> /// <returns> /// The <see cref="CefGlueClient"/>. /// </returns> private CefGlueClient CreateWebClient() { IoC.RegisterInstance(typeof(CefGlueBrowser), typeof(CefGlueBrowser).FullName, this); var client = new CefGlueClient(CefGlueClientParams.Create(this)); return(client); }
/// <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; }
/// <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); }