Blackberry:从嵌入式浏览器启动本机浏览器

时间:2011-02-15 21:39:52

标签: java browser blackberry browserfield

我正在编写一个JRE 5.0.0应用程序。该应用有一些HTML 提示内容,我使用field2.BrowserField显示。我想在用户点击某些链接时启动本机浏览器。我已经阅读了BrowserFieldListener的文档,但这看起来不像解决方案。

[编辑]

或者:使用本地文档调用本机浏览器。 EG:

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

[/编辑]

感谢。

2 个答案:

答案 0 :(得分:1)

RIM的app integration summary提供了一些示例代码来执行此操作。这很模糊,但它确实有效。

答案 1 :(得分:0)

我决定启动系统浏览器并将其提供给本地文件。

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