2011-02-15 140 views
1

我正在编写JRE 5.0.0应用程序。该应用程序有一些HTML 提示内容,我用field2.BrowserField显示。我想在用户点击特定链接时启动本机浏览器。我已阅读BrowserFieldListener的文档,但看起来不像解决方案。黑莓:从嵌入式浏览器启动原生浏览器

[编辑]

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

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

[/编辑]

感谢。

回答

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

RIM的app integration summary提供了一些示例代码来执行此操作。这是晦涩的,但它的工作原理。

+0

我在那里看到的是“调用BlackBerry Browser”,它不包括它。 – 2011-02-15 22:39:11