标签: browserfield

如何在Blackberry BrowserField中缓存

我正在创建一个Blackberry应用程序来显示某个站点的全屏Web视图.我有一个正常显示的工作浏览器字段,但页面之间的导航速度比本机浏览器慢.browserfield似乎没有内置缓存,导致加载时间变慢.当我添加以下代码来管理缓存时,网站不再正常显示.

BrowserFieldScreen.java:

import net.rim.device.api.browser.field2.*;
import net.rim.device.api.script.ScriptEngine;
import net.rim.device.api.system.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import org.w3c.dom.Document;

class BrowserFieldScreen extends MainScreen
{
    BrowserField browserField;
    LoadingScreen load = new LoadingScreen();;

    public BrowserFieldScreen()
    {   
        browserField = new BrowserField();
        browserField.getConfig().setProperty(
            BrowserFieldConfig.JAVASCRIPT_ENABLED, 
            Boolean.TRUE);
        browserField.getConfig().setProperty(
            BrowserFieldConfig.NAVIGATION_MODE, 
            BrowserFieldConfig.NAVIGATION_MODE_POINTER);
        browserField.getConfig().setProperty(
            BrowserFieldConfig.CONTROLLER, 
            new CacheProtocolController(browserField));

        browserField.requestContent("http://www.stackoverflow.com");
        add(browserField);
    }
}
Run Code Online (Sandbox Code Playgroud)

CacheProtocolController.java:

import javax.microedition.io.HttpConnection;
import javax.microedition.io.InputConnection;

import net.rim.device.api.browser.field2.BrowserField;
import net.rim.device.api.browser.field2.BrowserFieldRequest;
import net.rim.device.api.browser.field2.ProtocolController;

public class CacheProtocolController extends ProtocolController{

    // The BrowserField instance
    private BrowserField browserField;

    // CacheManager will take care of cached resources …
Run Code Online (Sandbox Code Playgroud)

java caching blackberry browserfield

47
推荐指数
1
解决办法
3265
查看次数

Blackberry BrowserField问题 -

我使用'net.rim.device.api.browser.field2.BrowserField'来加载带有2个脚本的html页面.

  1. 脚本1(Jquery)
  2. 脚本2(Jquery手机)

第二个脚本加载两次.就像脚本没有加载一样.根据其在html文件中的位置的时间.

例如:第五位脚本文件将分别加载5次.

提前致谢.

html html5 blackberry browserfield

6
推荐指数
1
解决办法
629
查看次数

Blackberry 5.0 - 单击BrowserField句柄链接

我正在尝试处理BrowserField用户实际点击链接时的事件.我研究过BrowserFieldListener,试过它的documentCreated()方法,但是当页面开始加载时,它会给我一个响应.当用户点击browserField中的链接时,我想要一个触发器.

我在这里失踪了什么?

blackberry onclick browserfield

4
推荐指数
1
解决办法
1403
查看次数

在本机BlackBerry应用程序中显示简单的HTML

我希望能够在我的原生BlackBerry应用程序中显示一些简单的HTML块,而不是从URL返回.这类似于现有的Stackoverflow问题(例如此处此处),但我需要帮助获取实际的BlackBerry示例代码(或者可能有人告诉我为什么这注定不起作用!).

BlackBerry网站提供了一些基于不同API版本的示例"浏览器"代码:
V4.5 API示例
V5.0 API示例

我找到了组件包附带的示例代码(此处有更多信息),并尝试使V4.5示例代码正常工作.我希望这将是一个有用的起点......

我已经设法让BrowserFieldDemo在Eclipse中编译并在模拟器中运行(我需要注释掉整个BrowserContentManagerDemo.java,否则该类将运行).

不幸的是,我只是在模拟器中得到一个白色的屏幕.当我添加日志记录并使用调试器时,这里的getBrowserContent()行似乎都出错了:

BrowserContent browserContent = null;

try
{
    browserContent = _renderingSession.getBrowserContent(connection, this, e);
    <snip>
}
catch (RenderingException re)
{
  EventLogger.logEvent(ID, (re + "").getBytes(), EventLogger.ERROR);
  System.err.println(re);
}
Run Code Online (Sandbox Code Playgroud)

返回的异常是:

net.rim.device.api.browser.field.RenderingException:连接中的IOException

我已经尝试使用4.5.0和4.7.0组件包构建和使用模拟器,但它们都具有相同的症状.

如果我将samples.cod文件推送到我的设备并启动它,我会得到"启动示例时出错:模块'示例'尝试访问安全API".据推测,我需要使用我的代码签名密钥(我确实拥有)签署示例代码,我不知道如何在Eclipse中执行.

所以,我的问题是:

1)有没有人真正得到这个V4.5示例代码?我应该放弃模拟器并使用设备吗?

2)这种V4.5方法能否用于显示我拥有的一些简单的HTML数据?例如,我可以使用localhost URL,还是创建自定义HttpConnection来提供数据?

如果可能的话,我需要支持运行V4.5,V4.7和V5.0的BlackBerry型号.

任何提示将不胜感激!

html user-interface blackberry custom-controls browserfield

1
推荐指数
1
解决办法
7023
查看次数

browserfield在黑莓中完成加载

任何人都可以帮我解决我的问题 - 知道browserfield2已经在Blackberry中完成加载的方法是什么.我需要在加载后设置一些选项.browserfield2有一些方法可以显示吗?

blackberry browserfield

1
推荐指数
1
解决办法
1728
查看次数

Blackberry BrowserField不适合屏幕

我正在尝试在我的黑莓应用程序中显示一个网站,但浏览器字段小于屏幕高度,我不能使它的大小相同.

正在加载的页面实际上比屏幕小,但网站是专为移动设备设计的,完全适合iphone webview,blabkberry浏览器和firefox和chrome.

我的代码如下:

    manager = new VerticalFieldManager(VerticalFieldManager.VERTICAL_SCROLL | VerticalFieldManager.HORIZONTAL_SCROLL)
    {
        protected void sublayout(int maxWidth, int maxHeight)
        {
            super.sublayout(maxWidth, maxHeight);
            setExtent(Display.getWidth(), Display.getHeight());
        }
    };
    manager.setBackground(BackgroundFactory.createSolidBackground(Color.RED));

    BrowserFieldConfig myBrowserFieldConfig = new BrowserFieldConfig();

    myBrowserFieldConfig.setProperty(BrowserFieldConfig.ALLOW_CS_XHR, Boolean.TRUE);
    myBrowserFieldConfig.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED, Boolean.TRUE);
    myBrowserFieldConfig.setProperty(BrowserFieldConfig.INITIAL_SCALE, new Float(1));

    browserField = new BrowserField(myBrowserFieldConfig);
    browserField.requestContent(link);

    manager.add(browserField);
Run Code Online (Sandbox Code Playgroud)

我得到的效果如下:当我加载此屏幕时,孔屏幕为红色(经理背景).之后屏幕变为白色(我认为这是浏览器字段),然后当网页加载时,屏幕再次变为红色,白色部分缩小到行高,并随着网页元素开始显示而增长.问题是页面应该适合所有屏幕,就像在iPhone和自定义浏览器中一样.

OBS:我正在使用黑莓OS版本6

blackberry browserfield

1
推荐指数
1
解决办法
1919
查看次数