2017-04-19 2 views
1

Ich versuche, eine WebView zu laden mit Codenamen One aber es funktioniert nicht auf ein echten Android-Gerät (obwohl es in dem Codenamen One gearbeitet Simulator - die Seite wurde geladen).Codename One: BrowserComponent und WebBrowser funktioniert nicht auf echtem Android-Gerät

Ich habe sowohl BrowserComponent und WebBrowser ausprobiert und beide haben nicht funktioniert. Der Code lautet:

public class WebViewScreenOpR implements Runnable { 

private String urlString; 

public WebViewScreenOpR(String urlString) { 
    super(); 
    this.urlString = urlString; 
} 

private Form webViewForm; 

private void prepareAsWebBrowser() { 
    WebBrowser webBrowser = new WebBrowser(urlString); 
    webViewForm = new Form("Starlent", new BoxLayout(BoxLayout.Y_AXIS)); 
    webViewForm.add(webBrowser); 
} 

private void prepareAsBrowserComponent() { 
    webViewForm = new Form("Starlent", new BoxLayout(BoxLayout.Y_AXIS)); 
    BrowserComponent browserComponent = new BrowserComponent(); 
    browserComponent.setURL(urlString); 
    webViewForm.add(browserComponent); 
} 

@Override 
public void run() { 
    prepareAsBrowserComponent(); 
    show(); 
} 

private void show() { 
    webViewForm.show(); 
} 

und es anzuzeigen:

private class GoLiveButtonActionListener implements ActionListener { 
    @Override 
    public void actionPerformed(ActionEvent evt) { 
     WebViewScreenOpR webViewScreenOpR = new WebViewScreenOpR("http://www.apple.com"); 
     Display.getInstance().callSerially(webViewScreenOpR); 
    } 
} 

Ich habe auch die "Reload()" versucht und "setEnabled (true/false)" Methoden, aber ohne Erfolg.

Beim Testen mit einem echten Android-Gerät zeigte es kurz eine Fortschrittsdialogbox mit dem Text "loading ...". Das Dialogfeld verschwand dann und nichts erscheint. Was ist falsch an meinem Code? Wie kann ich es in einem echten Android funktionieren?

+0

Ich bin nicht sicher, ob dies das Problem zusammenhängt: der Doc sagt „Auf Android diese Komponente eine native zeigen könnte Fortschrittsanzeige-Dialog. Sie können diese Funktion mit dem Anruf deaktivieren. ". Ich kann jedoch keine Anweisungen zur Deaktivierung finden. Was "Anruf"? – ikevin8me

Antwort

3

Versuchen Sie, ein Border Zentrum statt Ihre BoxLayout die Anfangsgröße des Browsers nur 0 Höhe sein könnte

+0

Nun, das Ergebnis ist das gleiche - immer noch, nichts zeigt sich in dem echten Android-Gerät. Ich habe versucht: webViewForm = neues Formular ("Starlent", neues BorderLayout()); und webViewForm.add (BorderLayout.CENTER, webBrowser) ;. Ich habe auch versucht "webBrowser.setHeight (300);" und "webViewForm.setHeight (400);" – ikevin8me

+0

die Höhe implizit setzen ist fast immer ein Fehler. – Chen

+0

Probieren Sie Ihren Code auf meinem Android-Gerät mit diesem: private void prepareAsWebBrowser() { WebBrowser webBrowser = neuer WebBrowser (URLString); webViewForm = neues Formular ("Starlent", neues BorderLayout()); webViewForm.add (BorderLayout.CENTER, webBrowser); } und es hat gut funktioniert – Chen