Как отобразить локальный текст HTML в Blackberry с помощью SDK 4.6 - PullRequest
0 голосов
/ 16 августа 2011

До сих пор я использовал SDK 5.0 и мог отображать локальный HTML-текст, используя net.rim.device.api.browser.field2.BrowserField , но теперь мое требование изменилось, и мне пришлось использовать SDK 4.6,Проблема в том, что теперь я получаю ошибку компилятора для BrowserField.Может кто-нибудь помочь мне в отображении HTML-текста в SDK 4.6

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Поскольку в предыдущих версиях RIM SDK не поддерживается класс BrowserField, вы можете запустить сеанс локального браузера для файла html, встроенного в ваше cod-приложение.

Допустим, ваше имя трески приложения mymodule.cod

И вы вложили файл document.html в свой проект, и этот файл находится в папке с исходным кодом , а не снаружи.

Вы можете запустить сеанс браузера с помощью этого кода:

    BrowserSession session = Browser.getDefaultSession();
    session.displayPage("cod://mymodule/document.html" ); 

Обратите внимание, что имя модуля чувствительно к регистру.

И обратите внимание, что это не документированный способ доступа к локальным html-файлам.

Если вы собираетесь проверить это в симуляторе, убедитесь, что симулятор MDS запущен и работает.

1 голос
/ 16 августа 2011

По-прежнему возможно отображать локальный HTML-контент с API-интерфейсами, доступными для более ранних версий BlackBerry OS.Сделать это немного сложнее.Для этого используется более старый API BrowserField (в отличие от более нового API BrowserField2, который вы уже обнаружили).Я думаю, что SDK включает пример приложения «BrowserField», которое частично демонстрирует это.Он включает использование класса RenderingSession для извлечения объекта BrowserContent , у которого есть метод для возврата поля пользовательского интерфейса, которое вы можете фактически показать на экране.

Хитростьв том, что RenderingSession ожидает, что вы предоставите ему HttpConnection (или InputConnection), с которого он может читать данные.Поскольку это интерфейсы, вам просто нужно реализовать их таким образом, чтобы они возвращали ваши собственные HTML-данные вместо того, чтобы оборачивать фактическое HTTP-соединение.

Это может быть немного специфично для контекста моего собственного приложения,но вот пример класса, который я написал, который оборачивает этот API для отображения локального содержимого HTML: BrowserFieldRenderer

...