Intereting Posts
autocomplete = ‘off’ не работает, когда тип ввода является паролем и делает поле ввода над ним, чтобы включить автозаполнение Можно ли использовать скрипты Extjs во внешнем html? Разница между кодировкой Url и кодировкой HTML Массовое присвоение элементов в цикле for Как получить поле «загрузить изображение» с помощью редактора Nicedit CSS Выбор стиля стрелки Вертикальное центрирование, Неизвестная высота, Другое содержимое на странице Как AJAX более одной формы на одной странице Как правильно использовать радиокнопки для материализации дизайна css Контактный элемент (гибкий элемент) на дно контейнера поместите “ вместо “ или “, чтобы создать список Как сделать радио входные данные требуемыми? Как вертикальный текст центра рядом с изображением в html / css? Кликабельный с использованием тега – нет JS для использования. Это легальный HTML? Javascript: как получить текст с веб-страницы

Показать простой HTML-код в приложении BlackBerry

Я хочу иметь возможность отображать некоторые простые куски HTML в моем родном приложении BlackBerry, а не возвращаться с URL-адреса. Это похоже на существующие вопросы Stackoverflow (например, здесь и здесь ), но мне нужна помощь в получении фактического кода примера BlackBerry для запуска (или, возможно, кто-то, кто скажет мне, почему это обречено на то, что он не работает!).

На веб-сайте BlackBerry есть пример кода «браузер» на основе различных доступных версий API:
Образец API V4.5
Образец API V5.0

Я нашел образец кода, который поставляется вместе с Component Packs (подробнее здесь ), и попытался получить код примера V4.5 для работы. Я надеялся, что это будет полезной отправной точкой …

Мне удалось заставить BrowserFieldDemo скомпилироваться в Eclipse и запустить в Simulator (мне нужно было прокомментировать весь браузер BrowserContentManagerDemo.java, иначе этот class будет работать вместо этого).

К сожалению, я просто получил белый экран в Simulator. Когда я добавляю в журнал и использую отладчик, все это, кажется, идет не так в строке getBrowserContent ():

BrowserContent browserContent = null; try { browserContent = _renderingSession.getBrowserContent(connection, this, e);  } catch (RenderingException re) { EventLogger.logEvent(ID, (re + "").getBytes(), EventLogger.ERROR); System.err.println(re); } 

Возвращаемое исключение:

net.rim.device.api.browser.field.RenderingException: IOException в соединении

Я попытался построить и использовать Simulator с 4.5.0 и 4.7.0 Component Packs, но оба они имеют одинаковые симптомы.

Если я вытащил файл samples.cod на свое устройство и запустил его, я получаю «Ошибка запуска образцов: Образцы модhive» для доступа к защищенному API ». Предположительно, мне нужно будет подписать образец кода с помощью моих ключей подписи кода (что у меня есть), что я не уверен, как это сделать в Eclipse.

Итак, мои вопросы:

1) Кто-нибудь действительно получил этот образец кода V4.5? Должен ли я отказаться от симулятора и использовать его вместо этого?

2) Может ли этот подход V4.5 работать для отображения некоторых простых HTML-данных, которые у меня есть? например, я могу использовать URL-адрес localhost или, возможно, создать пользовательский HttpConnection для обслуживания данных?

Мне нужно поддерживать модели BlackBerry, работающие на V4.5, V4.7 и V5.0, если это вообще возможно.

Любые советы будут оценены!

Перед запуском тренажера устройства убедитесь, что вы запускаете имитатор MDS. Все или большинство образцов, которые используют HTTP, не указывают транспорт, и поэтому будут использовать транспорт MDS по умолчанию, а это означает, что если у вас нет симулятора MDS, он не сможет выполнить HTTP-соединение.

Вы должны реализовать свой собственный HttpConnection, который будет принимать аргумент String в конструкторе и возвращать все значения, такие как getType (), getLength (), InputStream на openInputStream () и т. Д. Затем используйте его в поле браузера, как в sdk BrowserFieldDemo.

 public class HttpConnectionImpl implements HttpConnection { private long streamLength = 7000; private DataInputStream dataInput; private InputStream in; private String encoding = "text/html"; public HttpConnectionImpl(String data) { try { in = new ByteArrayInputStream(data.getBytes("UTF-8")); dataInput = new DataInputStream(in); } catch (Exception e) { System.out.println("HttpConnectionImpl : Exception : " + e); } } public String getURL() { return ""; } public String getProtocol() { return ""; } public String getHost() { return ""; } public String getFile() { return ""; } public String getRef() { return ""; } public String getQuery() { return ""; } public int getPort() { return 0; } public String getRequestMethod() { return ""; } public void setRequestMethod(String s) throws IOException { } public String getRequestProperty(String s) { return ""; } public void setRequestProperty(String s, String s1) throws IOException { } public int getResponseCode() throws IOException { return 200; } public String getResponseMessage() throws IOException { return ""; } public long getExpiration() throws IOException { return 0; } public long getDate() throws IOException { return 0; } public long getLastModified() throws IOException { return 0; } public String getHeaderField(String s) throws IOException { return ""; } public int getHeaderFieldInt(String s, int i) throws IOException { return 0; } public long getHeaderFieldDate(String s, long l) throws IOException { return 0; } public String getHeaderField(int i) throws IOException { return ""; } public String getHeaderFieldKey(int i) throws IOException { return ""; } public String getType() { return "text/html"; } public String getEncoding() { return encoding; } public long getLength() { return streamLength; } public InputStream openInputStream() throws IOException { return in; } public DataInputStream openDataInputStream() throws IOException { return dataInput; } public void close() throws IOException { } public OutputStream openOutputStream() throws IOException { return new ByteArrayOutputStream(); } public DataOutputStream openDataOutputStream() throws IOException { return new DataOutputStream(new ByteArrayOutputStream()); } } 

См. Полный код с примером использования