сначала загрузить страницу с помощью BrowserField, а затем щелкнуть ссылки, которые открываются в браузере BB вместо BrowserField? - PullRequest
0 голосов
/ 10 ноября 2011

Я хочу сначала загрузить страницу (сохраненную 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 ]

0 голосов
/ 05 октября 2013

Метод handleNavigationRequest (запрос BrowserFieldRequest) вызывается каждый раз, когда поле браузера запрашивает содержимое. Добавьте счетчик внутри метода. Увеличивайте счет на 1 каждый раз, когда вызывается метод.

Если число больше 0, это означает, что поле браузера уже загружено в первый раз. Последующие вызовы метода должны открывать сеанс браузера, а не запрашивать контент внутри поля браузера.

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++;  
     }  
0 голосов
/ 16 января 2012

Это должно быть довольно легко достичь.

  • Во-первых, вам нужно будет использовать объект BrowserField.
  • Расширение механизма JavaScript поля браузера с помощью BrowserField.extendScriptEngine (имя строки, сценарий Scriptable)
  • Внутри таблицы сценариев вы откроете собственный браузер.
  • В html заставьте кнопки выполнять созданную вами расширенную функцию JavaScript.
...