问题与执行browserfield英寸; deviceside =真QUOT;黑莓SIM卡 [英] Problem executing browserfield with ";deviceside=true" on BlackBerry sim
本文介绍了问题与执行browserfield英寸; deviceside =真QUOT;黑莓SIM卡的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图使用一个preSS高级BlackBerry开发书。问题是,当我启动与MDS模拟器,网页获取显示。但是,当我追加; deviceside = true添加到URL,然后启动模拟器没有MDS,不显示网页。只有白色的屏幕显示。
进口java.io.IOException异常;
进口的java.util。*;导入javax.microedition.io *。导入net.rim.device.api.browser.field *。
进口net.rim.device.api.io.http.HttpHeaders;
进口net.rim.device.api.system.Application;
进口net.rim.device.api.ui。*;
进口net.rim.device.api.ui.component.LabelField;
导入net.rim.device.api.ui.container *。公共类BrowserScreen扩展MainScreen实现Runnable,
RenderingApplication
{
私人RenderingSession renderSession;
私有状态的LabelField;
私人StatusUpdater更新;
私人字符串URL; 公共BrowserScreen()
{
renderSession = RenderingSession.getNewInstance();
状态=新的LabelField(正在加载...);
添加(状态);
更新=新StatusUpdater(状态);
URL =http://www.google.com
(新线(本))开始()。
} 私有类BrowserFieldContainer扩展了VerticalFieldManager
{
公共BrowserFieldContainer()
{
超(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR
| Manager.FIELD_HCENTER);
} 公共无效sublayout(INT了maxWidth,诠释了maxHeight)
{
INT宽度= BrowserScreen.this.getWidth();
INT高度= BrowserScreen.this.getHeight();
super.sublayout((int)的(宽×0.9),高度/ 2);
}
} 公共无效的run()
{
康涅狄格州的HttpConnection = NULL;
尝试
{
康恩=(HttpConnection的)Connector.open(URL);
updater.sendDelayedMessage(连接打开);
BrowserContent browserContent = renderSession.getBrowserContent(
康涅狄格州,对此,NULL);
如果(browserContent!= NULL)
{
场场= browserContent.getDisplayableContent();
如果(场!= NULL)
{
同步(Application.getEventLock())
{
删除所有();
添加(状态);
添加(新的LabelField(您的搜索从这里开始。));
BrowserFieldContainer容器=
新BrowserFieldContainer();
container.add(场);
加(容器);
加(新的LabelField(别忘了给小费的服务!));
}
}
browserContent.finishLoading();
}
}
赶上(例外五)
{
updater.sendDelayedMessage(e.getMessage());
}
最后
{
尝试
{
如果(参数conn!= NULL)
{
conn.close();
}
}
赶上(例外五)
{
}
}
} 公共对象eventOccurred(事件的事件)
{
如果(event.getUID()== Event.EVENT_URL_REQUESTED)
{
UrlRequestedEvent urlRequestedEvent =(UrlRequestedEvent)事件;
URL = urlRequestedEvent.getURL();
(新线(本))开始()。
}
updater.sendDelayedMessage(处理事件+ event.getUID()+为
+ event.getSourceURL());
返回null;
} 公众诠释getAvailableHeight(BrowserContent browserContent)
{
返回的getHeight()/ 2;
} 公众诠释getAvailableWidth(BrowserContent browserContent)
{
回报(INT)(的getWidth()* 0.9);
} 公共字符串getHTTPCookie(字符串URL)
{
返回null;
} 公众诠释getHistoryPosition(BrowserContent browserContent)
{
返回0;
}受保护的HttpConnection getResourceConnection(字符串URL,
HttpHeaders requestHeaders)
{
连接的HttpConnection = NULL;
尝试
{
连接=(HttpConnection的)Connector.open(URL);
如果(requestHeaders!= NULL)
{
Hashtable的标题= requestHeaders.toHashtable();
如果(头!= NULL)
{
枚举名称= headers.keys();
而(names.hasMoreElements())
{
字符串名称=(字符串)names.nextElement();
字符串值=(字符串)headers.get(名);
connection.setRequestProperty(名称,值);
}
}
}
}
赶上(IOException异常IOE)
{
updater.sendDelayedMessage(ioe.getMessage());
}
返回连接;
} 公众的HttpConnection的getResource(最终RequestedResource资源,
最终BrowserContent来源)
{
如果(资源== NULL || resource.isCacheOnly())
{
返回null;
} 字符串URL = resource.getUrl(); 如果(URL == NULL)
{
返回null;
} 如果(引荐== NULL)
{
返回getResourceConnection(resource.getUrl(),资源
.getRequestHeaders());
}
其他
{
(新的Thread()
{
公共无效的run()
{
的HttpConnection连接= getResourceConnection(资源
.getUrl(),resource.getRequestHeaders());
resource.setHttpConnection(连接);
referrer.resourceReady(资源);
}
})。开始();
}
返回null;
} 公共无效invokeRunnable(Runnable接口可运行)
{
(新线(可运行))开始();
}}
解决方案
检查参数deviceSide;您键入而不是TURE真的!
I am trying to use the sample code given in the Apress Advanced BlackBerry Development book. The problem is that when I launch the simulator with MDS, the web page gets displayed. But when I append ";deviceside=true" to the url, and then launch the simulator without MDS, the web page is not displayed. Only a white Screen is displayed.
import java.io.IOException;
import java.util.*;
import javax.microedition.io.*;
import net.rim.device.api.browser.field.*;
import net.rim.device.api.io.http.HttpHeaders;
import net.rim.device.api.system.Application;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.*;
public class BrowserScreen extends MainScreen implements Runnable,
RenderingApplication
{
private RenderingSession renderSession;
private LabelField status;
private StatusUpdater updater;
private String url;
public BrowserScreen()
{
renderSession = RenderingSession.getNewInstance();
status = new LabelField("Loading...");
add(status);
updater = new StatusUpdater(status);
url = "http://www.google.com";
(new Thread(this)).start();
}
private class BrowserFieldContainer extends VerticalFieldManager
{
public BrowserFieldContainer()
{
super(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR
| Manager.FIELD_HCENTER);
}
public void sublayout(int maxWidth, int maxHeight)
{
int width = BrowserScreen.this.getWidth();
int height = BrowserScreen.this.getHeight();
super.sublayout((int) (width * .9), height / 2);
}
}
public void run()
{
HttpConnection conn = null;
try
{
conn = (HttpConnection) Connector.open(url);
updater.sendDelayedMessage("Connection opened");
BrowserContent browserContent = renderSession.getBrowserContent(
conn, this, null);
if (browserContent != null)
{
Field field = browserContent.getDisplayableContent();
if (field != null)
{
synchronized (Application.getEventLock())
{
deleteAll();
add(status);
add(new LabelField("Your search starts here."));
BrowserFieldContainer container =
new BrowserFieldContainer();
container.add(field);
add(container);
add(new LabelField("Don't forget to tip the service!"));
}
}
browserContent.finishLoading();
}
}
catch (Exception e)
{
updater.sendDelayedMessage(e.getMessage());
}
finally
{
try
{
if (conn != null)
{
conn.close();
}
}
catch (Exception e)
{
}
}
}
public Object eventOccurred(Event event)
{
if (event.getUID() == Event.EVENT_URL_REQUESTED)
{
UrlRequestedEvent urlRequestedEvent = (UrlRequestedEvent) event;
url = urlRequestedEvent.getURL();
(new Thread(this)).start();
}
updater.sendDelayedMessage("Handle event " + event.getUID() + " for "
+ event.getSourceURL());
return null;
}
public int getAvailableHeight(BrowserContent browserContent)
{
return getHeight() / 2;
}
public int getAvailableWidth(BrowserContent browserContent)
{
return (int) (getWidth() * .9);
}
public String getHTTPCookie(String url)
{
return null;
}
public int getHistoryPosition(BrowserContent browserContent)
{
return 0;
}
protected HttpConnection getResourceConnection(String url,
HttpHeaders requestHeaders)
{
HttpConnection connection = null;
try
{
connection = (HttpConnection) Connector.open(url);
if (requestHeaders != null)
{
Hashtable headers = requestHeaders.toHashtable();
if (headers != null)
{
Enumeration names = headers.keys();
while (names.hasMoreElements())
{
String name = (String) names.nextElement();
String value = (String) headers.get(name);
connection.setRequestProperty(name, value);
}
}
}
}
catch (IOException ioe)
{
updater.sendDelayedMessage(ioe.getMessage());
}
return connection;
}
public HttpConnection getResource(final RequestedResource resource,
final BrowserContent referrer)
{
if (resource == null || resource.isCacheOnly())
{
return null;
}
String url = resource.getUrl();
if (url == null)
{
return null;
}
if (referrer == null)
{
return getResourceConnection(resource.getUrl(), resource
.getRequestHeaders());
}
else
{
(new Thread()
{
public void run()
{
HttpConnection connection = getResourceConnection(resource
.getUrl(), resource.getRequestHeaders());
resource.setHttpConnection(connection);
referrer.resourceReady(resource);
}
}).start();
}
return null;
}
public void invokeRunnable(Runnable runnable)
{
(new Thread(runnable)).start();
}
}
解决方案
check your argument to deviceSide; you type "ture" instead of "true"!
这篇关于问题与执行browserfield英寸; deviceside =真QUOT;黑莓SIM卡的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文