Cefsharp: ์ƒˆ ์ฐฝ/ํƒญ ํ—ˆ์šฉ ์•ˆ ํ•จ

์— ๋งŒ๋“  2014๋…„ 11์›” 13์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: cefsharp/CefSharp

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” ์–ด๋””์—์„œ๋‚˜ ์ฐพ๊ณ  ์žˆ์—ˆ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ƒˆ ์ฐฝ(๋˜๋Š” ํƒญ) ์ƒ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋งˆ์šฐ์Šค ๊ฐ€์šด๋ฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ์–‘์‹์—์„œ shift+Enter ๋“ฑ์„ ํด๋ฆญํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‚ด ์•ฑ์—๋Š” IWebBrowser ๋ณด๊ธฐ๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

CefSharp๋Š” ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‚ฌ๋ž‘ ํ•ด์š” ^_^

faq-able!

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ILifeSpanHandler๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๋ณด๋ฅ˜ ์ค‘์ธ URL์„ ํ˜„์žฌ ๋ธŒ๋ผ์šฐ์ € ์ธ์Šคํ„ด์Šค๋กœ ๋‹ค์‹œ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    public virtual bool OnBeforePopup(IWebBrowser browser, string url, ref int x, ref int y, ref int width, ref int height)
    {
        // Preserve new windows to be opened and load all popup urls in the same browser view
        browser.Load(url);
        //
        return true;
    }

    public virtual void OnBeforeClose(IWebBrowser browser)
    {
        // DO NOTHING
    }

๋ชจ๋“  6 ๋Œ“๊ธ€

ILifeSpanHandler๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๋ณด๋ฅ˜ ์ค‘์ธ URL์„ ํ˜„์žฌ ๋ธŒ๋ผ์šฐ์ € ์ธ์Šคํ„ด์Šค๋กœ ๋‹ค์‹œ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    public virtual bool OnBeforePopup(IWebBrowser browser, string url, ref int x, ref int y, ref int width, ref int height)
    {
        // Preserve new windows to be opened and load all popup urls in the same browser view
        browser.Load(url);
        //
        return true;
    }

    public virtual void OnBeforeClose(IWebBrowser browser)
    {
        // DO NOTHING
    }

๊ฐ์‚ฌ ํ•ด์š”! @dviz

:smile::+1: @dviz ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
๋‚˜๋Š” ์ƒˆ๋กœ์šด ์ด์Šˆ ๋ผ๋ฒจ์„ ๋ฐœ๋ช…ํ–ˆ๊ณ  #600์€ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ ๋ผ๋ฒจ์„ ๋ถ™์ธ ์ฒซ ๋ฒˆ์งธ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค ...

OnBeforePopup ๋ฐฉ๋ฒ•์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ ๊ฐœ๋…์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…• ์•Œ๋ ‰์Šค,

๊ณต๊ฐœ ๊ฐ€์ƒ ๋ถ€์šธ OnBeforePopup(IWebBrowser ๋ธŒ๋ผ์šฐ์ €, ๋ฌธ์ž์—ด url, ref int x, ref int y, ref int ๋„ˆ๋น„, ref int ๋†’์ด)
{
// ์—ด๋ ค ์žˆ๋Š” ์ƒˆ ์ฐฝ์„ ์œ ์ง€ํ•˜๊ณ  ๋™์ผํ•œ ๋ธŒ๋ผ์šฐ์ € ๋ณด๊ธฐ์—์„œ ๋ชจ๋“  ํŒ์—… URL์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
๋ธŒ๋ผ์šฐ์ €.๋กœ๋“œ(URL);
//
true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
}

public virtual void OnBeforeClose(IWebBrowser browser)
{
    // DO NOTHING
}

์ด ์†”๋ฃจ์…˜์€ ๋ฒ„์ „ 57์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

ํ˜„์žฌ์˜ ์•ˆ์ •์ ์ธ ๋„ˆ๊ฒŸ ๋ฆด๋ฆฌ์Šค 57๊ณผ โ€‹โ€‹ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ

    public class BrowserLifeSpanHandler : ILifeSpanHandler
    {
        public bool 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;
            return true;
        }

        public void OnAfterCreated(IWebBrowser browserControl, IBrowser browser)
        {
            //
        }

        public bool DoClose(IWebBrowser browserControl, IBrowser browser)
        {
            return false;
        }

        public void OnBeforeClose(IWebBrowser browserControl, IBrowser browser)
        {
            //nothing
        }
    }
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰