2010-04-19 5 views
2

Ce que j'essaie de faire est d'afficher une simple page web dans mon application (pas de javascript, cookies ou tout script et ne pas essayer de détecter des événements tels que le clic de souris etc. . J'utilise le code ci-dessous et maintenant tout ce que je reçois est vide écran .. Je sais que l'application accède à Internet (la flèche de transfert de données clignote dans le coin en haut à droite), mais je ne sais pas pourquoi il ne rend pas.Afficher une page Web simple dans mon application avec Blackberry BrowserField

Le code J'utilise est:

HttpConnectionFactory factory = new HttpConnectionFactory("www.google.ca",HttpConnectionFactory.TRANSPORT_WIFI | HttpConnectionFactory.TRANSPORT_WAP2 | HttpConnectionFactory.TRANSPORT_DIRECT_TCP); 

while(true) 
{ 
    try 
    { 
      HttpConnection connection = factory.getNextConnection(); 
      try 
      { 
       BrowserContent bc = RenderingSession.getNewInstance().getBrowserContent(connection,null,0); 
       Field f = bc.getDisplayableContent(); 
       add(f); 
      } 
      catch(RenderingException e) 
      { 
       //Log the error or store it for displaying to 
       //the end user if no transports succeed 
       System.out.println("error with rendering page"); 
      } 
    } 
    catch(NoMoreTransportsException e) 
    { 
      //There are no more transports to attempt 
      //Dialog.alert("Unable to perform request"); //Note you should never 
      //attempt network activity on the event thread 
      System.out.println("no more transport"); 
      break; 
    } 
} 

Quelques points à noter:

  1. Im en utilisant la classe usine http connexion de www.versatilemonkey.com seulement becuase ils impelemented la classe abstraite httpConnection. Si quelqu'un peut aussi me montrer comment mettre en œuvre le mien, ce serait génial.

  2. J'utilise '0' pour les drapeaux de la fonction getBrowserContent. J'ai regardé la documentation de rimn et n'ai pas pu trouver d'explication pour eux.

Toute aide serait grandement appréciée.

Merci, Ankit

Répondre

1

Courez-vous cela dans un simulateur ou un dispositif réel. Si sur un appareil réel, quel transporteur êtes-vous? La raison pour laquelle je demande est que si vous êtes sur un réseau GSM (tel que AT & T ou T-Mobile aux États-Unis), vous aurez probablement besoin d'avoir un APN configuré dans les paramètres de votre appareil ou spécifié sur l'URL de connexion. En jetant un coup d'œil au code de la bibliothèque de connexion HTTP que vous utilisez, je ne vois rien pour ajouter les paramètres APN à l'URL - donc si elle n'est pas configurée dans les paramètres de l'appareil, Direct TCP ne fonctionnera pas. Cela laisse WAP2 et Wi-Fi - tous les appareils n'ont pas de Wi-Fi et d'après mon expérience, tous les appareils/opérateurs ne supportent pas WAP2 non plus.

Questions connexes