Отображение простой веб-страницы в моем приложении с помощью Blackberry BrowserField
То, что я пытаюсь сделать, - это отобразить простую веб-страницу в моем приложении (без 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;
}
}
Некоторые моменты, на которые следует обратить внимание:
Я использую класс http-connection-factory от www.versatilemonkey.com только потому, что они реализовали абстрактный класс httpConnection. Если кто-то также может указать мне на то, как реализовать свое собственное, это было бы здорово.
Я использую '0' для флагов для функции getBrowserContent. Я просмотрел документацию rimn и не смог найти объяснения для них.
Любая помощь будет принята с благодарностью.
Спасибо анкит
1 ответ
Вы запускаете это в симуляторе или реальном устройстве. Если на реальном устройстве, на каком носителе вы находитесь? Причина, по которой я спрашиваю, заключается в том, что если вы находитесь в сети GSM (например, AT&T или T-Mobile в США), вам, скорее всего, потребуется настроить APN в настройках устройства или указать его в URL -адресе подключения. Взглянув на код библиотеки HTTP-соединений, которую вы используете, я не вижу там ничего, чтобы добавить настройки APN к URL -адресу - поэтому, если он не настроен в настройках устройства, Direct TCP не будет работать. Это оставляет WAP2 и Wi-Fi - не все устройства имеют Wi-Fi, и, по моему опыту, не все устройства / операторы также поддерживают WAP2.