Blackberry: запустить собственный браузер из встроенного браузера - PullRequest
1 голос
/ 16 февраля 2011

Я пишу приложение JRE 5.0.0. В приложении есть контент HTML tips , который я отображаю с field2.BrowserField. Я хотел бы запустить собственный браузер, когда пользователь нажимает определенные ссылки. Я прочитал документы для BrowserFieldListener , но это не похоже на решение.

[Изменить]

В качестве альтернативы: вызвать собственный браузер с локальным документом. EG:

BrowserSession session = Browser.getDefaultSession();
session.displayPage("file:///Blark/");

[/ Edit]

Спасибо.

Ответы [ 2 ]

1 голос
/ 16 февраля 2011

RIM сводная информация об интеграции приложения предоставляет пример кода для этого. Это неясно, но это работает.

0 голосов
/ 16 февраля 2011

Я решил запустить системный браузер и передать ему локальный файл.

public boolean launchBrowserWithLocalResource(String resource)
{
    boolean answer = false;

    InputStream input = AppLauncher.class.getResourceAsStream(resource);

    if( input != null )
    {
        DataBuffer buffer = new DataBuffer();
        ByteArrayOutputStream output = null;

        try
        {
            byte[] temp = new byte[input.available()];

            while(true)
            {
                int bytesRead = input.read(temp);

                if( bytesRead == -1 )
                    break;

                buffer.write( temp, 0, bytesRead );
            }
            input.close();

            output = new ByteArrayOutputStream();

            Base64OutputStream boutput = new Base64OutputStream(output);

            output.write( "data:text/html;base64,".getBytes() );
            boutput.write( buffer.getArray() );

            boutput.flush();
            boutput.close();

            output.flush();
            output.close();

        } catch( IOException e )
        {
            Logger.log( "Caught IOException: " + e.getMessage() );
        }

        if( output != null )
        {
            BrowserSession bSession = Browser.getDefaultSession();
            bSession.displayPage( output.toString() );
            answer = true;
        }

    } else
    {
        Logger.log( "File not found: " + resource );
    }
    return answer;
}
...