2

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

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

我正在使用的代码是:

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 文档,找不到对它们的解释。

任何帮助将不胜感激。

谢谢,安琪

4

1 回答 1

1

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

于 2010-04-20T05:39:54.033 回答