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

发布于 2024-12-14 23:59:48 字数 823 浏览 3 评论 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 页面,然后打开我正在使用的 BB 浏览器中页面的链接 browserfield.requestContent("local:///test.html");

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

请给我建议一个解决方法,

谢谢, 阿尼凯特

I want to initially load a page (stored html page) with the BrowserField and then have links clicked in that open up in the BB browser instead of the BrowserField?

My current code is as following,

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

And I want to load the html page stored in resources in browserfield and then open the links from the page in BB Browser which I'm doing using
browserfield.requestContent("local:///test.html");

But application tries to open the html file in browser, which is not desirable.

Please suggest me a workaround,

Thanks,
Aniket

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

奢望 2024-12-21 23:59:48

这应该很容易实现。

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

This should be quite easy to achieve.

  • Firstly you will need to use the BrowserField object instead.
  • Extend the browser field's javascript engine, by using BrowserField.extendScriptEngine(String name, Scriptable scriptable)
  • Within the Scriptable you will open the native browser.
  • In the html, make the buttons execute the extended javascript function you created.
过潦 2024-12-21 23:59:48

每次 browserfield 请求内容时都会调用 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++;  
     }  

The handleNavigationRequest(BrowserFieldRequest request) method is called each time the browserfield requests content.
Add a count inside the method.
Increment the count by 1 each time the method is called.

If the count is greater then 0, it means the Browserfield has already loaded the first time. Subsequent calls to the method should then open a browser session instead of requesting content inside the 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++;  
     }  
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文