2011-02-15 134 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