Сначала загрузить страницу с помощью BrowserField, а затем щелкнуть ссылки, которые открываются в браузере BB вместо BrowserField?
Я хочу сначала загрузить страницу (сохраненную HTML-страницу) с помощью BrowserField, а затем щелкнуть ссылки, которые открываются в браузере BB вместо BrowserField?
Мой текущий код выглядит следующим образом,
BrowserFieldConfig.setProperty(BrowserFieldConfig.CONTROLLER, new BrowserFieldController()
{
public InputConnection handleResourceRequest(BrowserFieldRequest request) throws Exception {
return (InputConnection)Connector.open(request.getURL());
}
public void handleNavigationRequest(BrowserFieldRequest request) throws Exception
{
BrowserSession b = Browser.getDefaultSession();
b.displayPage(request.getURL());
}
});
И я хочу загрузить html-страницу, хранящуюся в ресурсах в browserfield, а затем открыть ссылки со страницы в BB Browser, что я делаю с помощью browserfield.requestContent("local:///test.html");
Но приложение пытается открыть HTML-файл в браузере, что нежелательно.
Пожалуйста, предложите мне обходной путь,
Спасибо Аникет
2 ответа
Это должно быть довольно легко достичь.
- Во-первых, вам нужно будет использовать объект BrowserField.
- Расширьте механизм JavaScript поля браузера, используя BrowserField.extendScriptEngine (имя строки, сценарий с поддержкой скриптов)
- В Scriptable вы откроете собственный браузер.
- В html заставьте кнопки выполнять расширенную функцию javascript, которую вы создали.
Метод handleNavigationRequest(запрос BrowserFieldRequest) вызывается каждый раз, когда поле браузера запрашивает содержимое. Добавьте счетчик внутри метода. Увеличивайте счет на 1 каждый раз, когда вызывается метод.
Если число больше 0, это означает, что поле Browser уже загружено в первый раз. Последующие вызовы метода должны открывать сеанс браузера, а не запрашивать содержимое внутри поля браузера.
public void handleNavigationRequest(BrowserFieldRequest request) throws Exception
{
if(click<1){
// request for content inside Browserfield
}
else {
BrowserSession b = Browser.getDefaultSession();
b.displayPage(request.getURL());
}
click++;
}