使用Blackberry BrowserField在我的应用程序中显示简单网页

时间:2010-04-19 05:20:41

标签: blackberry html-rendering browserfield

我要做的是在我的应用程序中显示一个简单的网页(没有javascript,cookie或任何脚本,也没有尝试检测任何事件,如鼠标点击等)。

我正在使用下面的代码,现在我得到的只是空屏幕..我知道应用程序正在访问互联网(数据传输箭头在右上角闪烁)但不确定为什么它不呈现。 / p>

我使用的代码是:

HttpConnectionFactory factory = new HttpConnectionFactory("www.google.ca",HttpConnectionFactory.TRANSPORT_WIFI | HttpConnectionFactory.TRANSPORT_WAP2 | HttpConnectionFactory.TRANSPORT_DIRECT_TCP);

while(true)
{
     try
     {
          HttpConnection connection = factory.getNextConnection();
          try
          {
              BrowserContent bc = RenderingSession.getNewInstance().getBrowserContent(connection,null,0);
              Field f = bc.getDisplayableContent();
              add(f);  
          }
          catch(RenderingException e)
          {
              //Log the error or store it for displaying to
              //the end user if no transports succeed
              System.out.println("error with rendering page");
          }
    }
    catch(NoMoreTransportsException e)
    {
           //There are no more transports to attempt
           //Dialog.alert( "Unable to perform request" ); //Note you should never
           //attempt network activity on the event thread
           System.out.println("no more transport");
           break;
    }
}

需要注意的一些要点:

  1. 我正在使用www.versatilemonkey.com上的http-connection-factory类,因为他们已经实现了抽象的httpConnection类。如果有人也可以指出我如何实现我自己的那将是伟大的。

  2. 我使用'0'作为getBrowserContent函数的标志。我查看了rimn文档,找不到对它们的解释。

  3. 非常感谢任何帮助。

    谢谢, ANKIT

1 个答案:

答案 0 :(得分:1)

您是在模拟器还是真实设备中运行它。如果在真实设备上,您使用的是哪个运营商?我问的原因是,如果您使用的是GSM网络(例如美国的AT& T或T-Mobile),您很可能需要在设备设置中配置APN或在连接URL上指定。看一下您正在使用的HTTP连接库的代码,我没有看到任何内容将APN设置附加到URL - 因此,如果它未在设备设置中配置,则Direct TCP将无效。这留下了WAP2和Wi-Fi - 并非所有设备都具有Wi-Fi,根据我的经验,并非所有设备/运营商都支持WAP2。