public override void OnContextCreated(MyCefContextArgs args) { //sample !!! //call window.test001() from js CefV8Value cefV8Global = args.context.GetGlobal(); Cef3FuncHandler funcHandler = Cef3FuncHandler.CreateFuncHandler(Test001); Cef3Func func = Cef3Func.CreateFunc("test001", funcHandler); cefV8Global.Set("test001", func); }
void MxCallBack(int id, IntPtr argsPtr) { switch ((MyCefMsg)id) { case MyCefMsg.CEF_MSG_ClientHandler_OnBeforePopup: { NativeCallArgs args = new NativeCallArgs(argsPtr); string url = args.GetArgAsString(0); Cef3Binder.SafeUIInvoke(() => { IWindowForm popupWin = Cef3Binder.CreateNewBrowserWindow(600, 450); popupWin.Show(); }); } break; case MyCefMsg.CEF_MSG_ClientHandler_BeforeDownload: { } break; case MyCefMsg.CEF_MSG_ClientHandler_ShowDevTools: { //show dev tools Cef3Binder.SafeUIInvoke(() => { IWindowForm newPopupForm = Cef3Binder.CreateNewBrowserWindow(800, 600); newPopupForm.Show(); }); } break; case MyCefMsg.CEF_MSG_CefSettings_Init: { InitCefSettings(new CefSettings(argsPtr)); } break; case MyCefMsg.CEF_MSG_MainContext_GetConsoleLogPath: { NativeCallArgs nat1 = new NativeCallArgs(argsPtr); nat1.SetOutputAsAsciiString(0, "d:\\WImageTest\\cef_console.log"); } break; case MyCefMsg.CEF_MSG_OSR_Render: { //not visit here? } break; case MyCefMsg.CEF_MSG_RenderDelegate_OnContextCreated: { //client app callback //eg. from RenderClientApp //in render process *** //we can register external methods for window object here. //NativeMethods.MessageBox(IntPtr.Zero, id.ToString(), "NN2", 0); if (renderProcessListener != null) { NativeCallArgs args = new NativeCallArgs(argsPtr); MyCefContextArgs cefContextArgs = new MyCefContextArgs(args); //var clientRenderApp = new NativeRendererApp(args.GetArgAsNativePtr(0)); //var browser = new NativeBrowser(args.GetArgAsNativePtr(1)); //var context = new NativeJsContext(args.GetArgAsNativePtr(2)); renderProcessListener.OnContextCreated(cefContextArgs); } } break; case MyCefMsg.CEF_MSG_RenderDelegate_OnContextReleased: { if (renderProcessListener != null) { NativeCallArgs args = new NativeCallArgs(argsPtr); MyCefContextArgs cefContextArgs = new MyCefContextArgs(args); //var clientRenderApp = new NativeRendererApp(args.GetArgAsNativePtr(0)); //var browser = new NativeBrowser(args.GetArgAsNativePtr(1)); //var context = new NativeJsContext(args.GetArgAsNativePtr(2)); renderProcessListener.OnContextReleased(cefContextArgs); } } break; case MyCefMsg.CEF_MSG_RenderDelegate_OnWebKitInitialized: { if (renderProcessListener != null) { NativeCallArgs args = new NativeCallArgs(argsPtr); renderProcessListener.OnWebKitInitialized(args); } } break; } }