2009-12-30 5 views
0

Est-il possible d'afficher la chaîne html LOCAL dans mon application BB?Comment afficher du texte html dans BlackBerry?

Par exemple: J'ai une chaîne

"<b>text-text-text</b> <A href="http://stackoverflow.com">link</A> "

Comment puis-je analyser et montrer comme

texte texte textelink

Merci

?.

Répondre

2

Vous pouvez utiliser un objet BrowserField pour afficher le contenu de votre application en tant que champ. Afin de rendre HTML fourni sous la forme d'une chaîne plutôt que d'une URL, voir this answer qui implique de se moquer d'une connexion HttpConnection.

1
import javax.microedition.io.Connection; 
import javax.microedition.io.Connector; 
import javax.microedition.io.HttpConnection; 
import java.util.*; 
import java.io.*; 

import net.rim.blackberry.api.browser.Browser; 
import net.rim.blackberry.api.browser.BrowserSession; 
import net.rim.device.api.ui.*; 
import net.rim.device.api.browser.field.*; 
import net.rim.device.api.browser.plugin.BrowserPageContext; 
import net.rim.device.api.io.Base64OutputStream; 
import net.rim.device.api.io.http.HttpHeaders; 
import net.rim.device.api.ui.UiApplication; 
import net.rim.device.api.ui.container.MainScreen; 
import net.rim.device.api.system.Application; 
import net.rim.device.api.ui.component.LabelField; 
import net.rim.device.api.ui.component.Status; 
import net.rim.device.api.ui.component.TextField; 



final class bFieldExample extends UiApplication 

{ 
    private static final String REFERER = "referer"; 

    public static final HttpConnection Utilities = null; 

// private static final HttpConnection HttpConnection = null; 

    private RenderingSession rs; 

    private MainScreen ms; 

    private HttpConnection conn; 

    public static void main(String[] args) 
    { 
     bFieldExample app = new bFieldExample(); 
     app.enterEventDispatcher(); 

    } 

    public bFieldExample() 
    { 
     ms = new MainScreen(); 
     pushScreen(ms); 
     rs = RenderingSession.getNewInstance(); 
     String s = "<b>text-text-text</b> <A href="http://stackoverflow.com">link</A>" 

     //rs.getRenderingOptions().setProperty(RenderingOptions.CORE_OPTIONS_GUID,RenderingOptions.JAVASCRIPT_ENABLED, true); 
     //LabelField l = new LabelField("Browser",LabelField.ELLIPSIS|LabelField.USE_ALL_WIDTH); 
     ms.setTitle(new LabelField("Browser",LabelField.ELLIPSIS|LabelField.USE_ALL_WIDTH));   
     myThread thread = new myThread(s); 
     thread.start(); 
    } 


    class myThread extends Thread 
    { 

     private String _url; 

     myThread(String url) 
     { 
       _url=url; 

     } 

     public void run() 
     { 
      try { 

       ByteArrayOutputStream output = new ByteArrayOutputStream(); 
       Base64OutputStream boutput = new Base64OutputStream(output);     
       output.write("data:text/html;base64,".getBytes()); 
       boutput.write(_url.getBytes()); 
       boutput.flush(); 
       boutput.close(); 
       output.flush(); 
       output.close(); 

       BrowserSession bSession = Browser.getDefaultSession(); 
       bSession.displayPage(output.toString()); 

       } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     } 
    } 

} 
+2

qui ouvrira un nouveau navigateur - Je pense que l'auteur de la question est à la recherche d'une solution qui rend le code HTML dans l'application elle-même. –

1
myBrowserField.displayContent("<b>text-text-text</b> <A href="http://stackoverflow.com">link</A>", "http://localhost");
0

Essayez celui-ci:

BrowserField myBrowserField; 
myBrowserField = new BrowserField(); 
add(myBrowserField); 
String content ="<html><head></head><body>"+ 
    "<b>text-text-text</b> <A href="http://stackoverflow.com">link</A>"+ 
    "</body></html>"; 
myBrowserField.displayContent(content,"");//"http://localhost" 
Questions connexes