Отображение простой веб-страницы в моем приложении с помощью Blackberry BrowserField - PullRequest
2 голосов
/ 19 апреля 2010

Я пытаюсь отобразить простую веб-страницу в моем приложении (без JavaScript, файлов cookie или каких-либо сценариев и не пытаюсь обнаружить какие-либо события, такие как щелчок мыши и т. Д.).

Я использую приведенный ниже код, и сейчас все, что я получаю, это пустой экран .. Я знаю, что приложение выходит в Интернет (стрелка передачи данных мигает в верхнем правом углу), но не уверен, почему его не рендеринг.

Код, который я использую:

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;
    }
}

Обратите внимание:

  1. Я использую класс http-connection-factory от www.versatilemonkey.com только потому, что они реализовали абстрактный класс httpConnection. Если бы кто-то также мог указать мне, как реализовать мои собственные, это было бы здорово.

  2. Я использую '0' для флагов функции getBrowserContent. Я просмотрел документацию об установке и не смог найти для них объяснения.

Любая помощь будет принята с благодарностью.

Спасибо, Анкит

1 Ответ

1 голос
/ 20 апреля 2010

Вы запускаете это в симуляторе или реальном устройстве. Если на реальном устройстве, на каком носителе вы находитесь? Причина, по которой я спрашиваю, заключается в том, что если вы находитесь в сети GSM (например, AT & T или T-Mobile в США), вам, скорее всего, потребуется настроить APN в настройках устройства или указать его в URL-адресе подключения. Взглянув на код библиотеки HTTP-соединений, которую вы используете, я не вижу там ничего, чтобы добавить настройки APN к URL-адресу - поэтому, если он не настроен в настройках устройства, Direct TCP не будет работать. Это оставляет WAP2 и Wi-Fi - не все устройства имеют Wi-Fi, и, по моему опыту, не все устройства / операторы также поддерживают WAP2.

...