2013-04-06 3 views
0

Я попытался использовать html-страницу в своем коде для того, что нашел путь от приложения kichensink, я использую тот же код и тот же файл page.html, который работает на симуляторе, но не работает на устройствах. Ondevices я получил пустой экран. Ниже мой код. Пожалуйста помоги мне с этим.HTML и webbrowser

void ShowForm() 
{ 
    Form f = new Form("testweb"); 
    Container cnt = new Container(new BorderLayout()); 
    cnt = createDemo(); 
    f.setLayout(new BorderLayout()); 
    f.addComponent(BorderLayout.CENTER, cnt); 
    f.show(); 
} 

public Container createDemo() { 
    Container cnt = new Container(new BorderLayout()); 
    final WebBrowser wb = new WebBrowser(); 
    if(wb.getInternal() instanceof BrowserComponent) { 
     Button btn = new Button("Add"); 
     final TextArea content = new TextArea(); 
     Container north = new Container(new BorderLayout()); 
     north.addComponent(BorderLayout.CENTER, content); 
     north.addComponent(BorderLayout.EAST, btn); 
     cnt.addComponent(BorderLayout.NORTH, north); 
     content.setHint("Add to web document"); 
     btn.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
       ((BrowserComponent)wb.getInternal()).execute("fnc('" + content.getText() + "');"); 
      } 
     }); 
     ((BrowserComponent)wb.getInternal()).setBrowserNavigationCallback(new BrowserNavigationCallback() { 
      public boolean shouldNavigate(String url) { 
       if(url.startsWith("http://sayhello")) { 
        // warning!!! This is not on the EDT and this method MUST return immediately! 
        Display.getInstance().callSerially(new Runnable() { 
         public void run() { 
          ((BrowserComponent)wb.getInternal()).execute("fnc('this was written by Java code!');"); 
         } 
        }); 
        return false; 
       } 
       return true; 
      } 
     }); 
    } 

    cnt.addComponent(BorderLayout.CENTER, wb); 
    wb.setURL("jar:///page.html"); 
    return cnt; 
} 

Привет, я несколько изменений setlayout для контейнера и добавить к другим cotainer с прокручивать верно для контейнера и прокручивать ложным для формы, но теперь он дает мне ошибку на устройствах и ошибки: «веб-страница не доступна» страница .html не найден. В то время как page.html уже размещен в src с файлом .res и приложением на симуляторе.

С уважением, Jeny

+0

Фактически он показывает «cnt.addComponent (BorderLayout.NORTH, север); вплоть до этого, но на центральном зелье, когда мы добавляем веб-браузер («cnt.addComponent (BorderLayout.CENTER, wb);»), что эта часть не появляется на экране, она просто показывает одну белую линию. – jeny

ответ

0

Вы не можете сделать макет границы прокручивать, включая вложенные scrollables и прокрутка нативные + Codename Один виджетов в синхронизации, вероятно, не является хорошей идеей.

У какого устройства у вас возникла проблема? В некоторых случаях была проблема с компонентом браузера на Android, теперь он исправлен.

+0

Привет, Almong, я использую android build для своих Android-устройств (Samsung GT-I5801). Пожалуйста, дайте мне знать, как я могу исправить эту проблему, поскольку она дает мне ошибку для page.htm не найден. – jeny

+0

Кажется, у вас есть строчный p в вашем URL-адресе, проверьте случай вашего имени файла. –