이미지와 글귀

반응형

public class LifespanHandler : ILifeSpanHandler

    {

        //event that receive url popup

        public event Action popup_request;

        static public IBrowser popupBrowser = null;


        bool ILifeSpanHandler.OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)

        {

            newBrowser = null; // out 변수는 참조를 위한 변수이기 때문에 반드시 값을 할당해야 한다.

            return false; // true이면 팝업이 뜨지 않게 된다.

        }



        bool ILifeSpanHandler.DoClose(IWebBrowser browserControl, IBrowser browser)

        { return false; }


        void ILifeSpanHandler.OnBeforeClose(IWebBrowser browserControl, IBrowser browser) { }


        void ILifeSpanHandler.OnAfterCreated(IWebBrowser browserControl, IBrowser browser) {

            if(browser.IsPopup) // 새로 생성된 크로미움 브라우저가 팝업 상태라면

                browser.CloseBrowser(true); // 바로 종료한다. 여기서 목적에 맞게 새로 코딩하자.


           

        }

    }


ILifeSpanHandler를 서브클래싱하여 namespace 안에 추가한다.



  public ChromiumWebBrowser browser = null;


        public void InitBrowser()

        {

            CefSettings settings = new CefSettings();

            settings.CachePath = @"\packages\CefSharp.Common.63.0.1\CefSharp\x64\CefSharp.BrowserSubproce";

            settings.PersistSessionCookies = true;

            settings.Locale = "EUC-KR";


            if(!Cef.IsInitialized)

                Cef.Initialize(settings);


            browser = new ChromiumWebBrowser("www.naver.com");

            browser.Dock = DockStyle.Fill;

         

            Controls.Add(browser);


            LifespanHandler life = new LifespanHandler();

            browser.LifeSpanHandler = life;

        }


InitBrowser 함수를 통해 크로미움 메인 브라우저가 Form에 생성된다. 

InitializeComponent 함수가 실행된 다음에 쓰면 된다.

CefSettings 또한 원하는 크로미움에 맞게 세팅하면 된다.






반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band