Использование управляемого встроенного браузера в SWT - PullRequest
0 голосов
/ 29 марта 2012

Кто-нибудь знает, как использовать «Управляемый встроенный браузер» в SWT, который позволяет манипулировать страницами?Я могу только найти информацию о том, как использовать обычный браузер SWT, но мне нужно иметь возможность взаимодействовать с загруженной страницей.Спасибо.Вот так - http://publib.boulder.ibm.com/infocenter/btt/v7r0/index.jsp?topic=%2Fcom.ibm.btt.application_presentation.doc_7.0%2Fdoc%2Freference%2Frichclient%2Fcontrolembededbrowser.html - но нет инструкции по инициации такого класса.

1 Ответ

3 голосов
/ 14 сентября 2012

Вот пример с Веб-сайт фрагментов SWT Eclipse

Также этот пост может дать вам некоторое представление об этом. Использование объектов Java в JavaScript в Eclipse SWT Browser Control

Чтобы представить объект Java из Eclipse в JavaScript, необходимо создать класс, расширяющий функцию BrowserFunction.Конструктор этого класса принимает два аргумента;первый - это экземпляр браузера, а второй - имя функции, которая будет доступна в коде JavaScript, работающем под управлением браузера SWT ... ...

фрагмент кода

Функция браузера: <pre>import java.io.File;</p> <p>import org.eclipse.swt.browser.Browser; import org.eclipse.swt.browser.BrowserFunction;</p> <p>public class ListFilesFunction extends BrowserFunction {</p> <pre><code>Browser browser = null; String functionName = null; public ListFilesFunction(Browser browser, String name) { super(browser, name); this.browser = browser; this.functionName = name; } public Object function (Object[] args) { if (args.length == 0) browser.execute("alert('Function " + functionName + " requires one argument - parent folder path');"); File file = new File(args[0].toString()); if (!file.exists()) browser.execute("alert('Folder " + args[0] +

"не существует"); ");

    if (!file.isDirectory())
        browser.execute("alert('Path " + args[0] + " must be a folder');");

    return file.list();
}

}

Associateэта функция с управлением браузером

<pre>public class View extends ViewPart { Browser browserCtl = null; ...</p> <pre><code>public void createPartControl(Composite parent) { ... browserCtl = new Browser(parent, SWT.None); new ListFilesFunction(browserCtl, "getFiles"); ... } ...

} вызывает эту функцию из JavaScript:

<html>
    <head>
        <script type='text/javascript'>
            files = getFiles("c:/");

        for (i = 0; i < files.length; i++)
        {
            document.writeln(files[i] + "<br>");
        }
        </script>
    </head>
    <body>

    </body>
</html>
...