0

我想最初使用 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 页面,然后在我正在使用 browserfield.requestContent("local:///test.html"); 的 BB 浏览器中打开该页面的链接;

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

请给我一个解决方法,

谢谢,阿尼凯特

4

2 回答 2

0

每次浏览器字段请求内容时都会调用handleNavigationRequest(BrowserFieldRequest request) 方法。在方法中添加一个计数。每次调用该方法时将计数增加 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++;  
     }  
于 2013-10-05T08:53:03.713 回答
0

这应该很容易实现。

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