Сначала загрузить страницу с помощью 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++;  
     }  
Другие вопросы по тегам