最初使用BrowserField加载一个页面,然后在BB浏览器而不是BrowserField中打开这些链接?

时间:2011-11-10 09:33:11

标签: blackberry browserfield

我想最初使用BrowserField加载一个页面(存储的html页面),然后在BB浏览器而不是BrowserField中打开这些链接?

我目前的代码如下,

BrowserFieldConfig.setProperty(BrowserFieldConfig.CONTROLLER, new BrowserFieldController()
  {                 
     public InputConnection handleResourceRequest(BrowserFieldRequest request) throws    Exception {
        return (InputConnection)Connector.open(request.getURL());
     }
     public void handleNavigationRequest(BrowserFieldRequest request) throws Exception 
     {
         BrowserSession b = Browser.getDefaultSession();
         b.displayPage(request.getURL());   
     }  
 });

我想在browserfield中加载存储在资源中的html页面,然后在BB Browser中打开我正在使用的页面中的链接     browserfield.requestContent( “本地:///test.html”);

但是应用程序试图在浏览器中打开html文件,这是不可取的。

请建议我解决方法,

谢谢, Aniket

2 个答案:

答案 0 :(得分:0)

这应该很容易实现。

  • 首先,您需要使用BrowserField对象。
  • 使用BrowserField.extendScriptEngine(String name,Scriptable scriptable)扩展浏览器字段的javascript引擎
  • 在Scriptable中,您将打开本机浏览器。
  • 在html中,让按钮执行您创建的扩展javascript函数。

答案 1 :(得分:0)

每次browserfield请求内容时都会调用handleNavigationRequest(BrowserFieldRequest请求)方法。 在方法内添加计数。 每次调用方法时,计数增加1。

如果计数大于0,则表示Browserfield已经第一次加载。然后,对该方法的后续调用应该打开浏览器会话,而不是在Browserfield内请求内容。

public void handleNavigationRequest(BrowserFieldRequest request) throws Exception 
     {
        if(click<1){
          // request for content inside Browserfield
          }
         else  {
         BrowserSession b = Browser.getDefaultSession();
         b.displayPage(request.getURL()); 
         }

       click++;  
     }