2013-04-06 3 views
0

J'ai essayé d'utiliser la page html dans mon code pour ce que j'ai trouvé moyen de l'application kichensink, j'utilise le même code et la même application de fichier page.html travaillant sur simulateur mais ne fonctionnant pas sur les périphériques. Ondevices j'ai eu un écran vide. Voici mon code. Aidez-moi s'il vous plaît à ce sujet.HTML et 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; 
} 

Salut, je ne l'ai quelques changements setLayout pour récipient et ajouter à un autre cotainer avec scrollable vrai pour conteneur et scrollable faux pour la forme, mais maintenant, il me donne une erreur sur les périphériques et erreur: page « page web non disponible » .html non trouvé. Alors que page.html est déjà placé dans src avec le fichier .res et l'application sur le simulateur fonctionne très bien.

Cordialement, Jeny

+0

En fait, il montre "cnt.addComponent (BorderLayout.NORTH, north);" jusqu'à ce but mais sur la potion centrale quand nous ajoutons le navigateur Web ("cnt.addComponent (BorderLayout.CENTER, wb);") cette partie ne venant pas sur l'écran c'est juste montrer une ligne blanche. – jeny

Répondre

0

Vous ne pouvez pas faire une mise en page à la frontière scrollable, y compris scrollables imbriqués et le défilement natif + Codename One widgets en synchronisation est probablement pas une bonne idée.

Sur quel appareil rencontrez-vous un problème? Il y avait un problème avec le composant du navigateur sur Android pour certains cas d'utilisation, c'est corrigé maintenant.

+0

Salut Almong, J'utilise Android construire pour mes appareils Android (Samsung GT-I5801). S'il vous plaît laissez-moi savoir comment je peux résoudre ce problème car il me donne erreur pour page.htm pas trouvé. – jeny

+0

Il semble que vous ayez un p en minuscule dans votre URL, vérifiez le cas de votre nom de fichier. –