我正在使用瀏覽器字段,它正在模擬器4.7 storm.But中顯示,但當我在設備上執行時,它仍然是空白頁面不顯示。任何人都可以幫助。黑莓風暴設備中的瀏覽器提交問題
回答
下面是代碼,我試圖追加 「;接口= true」 將仍它不是9550設備上執行的URL,而在9550模擬器其執行
/* * BrowserFieldDemo.java * *版權所有©1998-2009 Research In Motion Ltd. * *注意:爲簡單起見,此示例應用程序可能不會利用 *資源束和資源字符串。但是,強烈建議 *應用程序開發人員利用BlackBerry開發平臺中的本地化功能 *以確保跨多種語言和地理位置的無縫應用程序體驗。欲瞭解更多信息 *關於本地化您的應用程序,請參閱與本版本相關的BlackBerry Java Development *環境開發指南。 */
import java.io.IOException;
import javax.microedition.io.HttpConnection;
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.Status; import net.rim.device.api.ui.container.MainScreen; import net.rim.device.api.system。*;
最終類BrowserFieldDemo延伸的UIApplication實現RenderingApplication {
private static final String REFERER = "referer";
private RenderingSession _renderingSession;
private HttpConnection _currentConnection;
private MainScreen _mainScreen;
/***************************************************************************
* Main.
**************************************************************************/
public static void main(String[] args)
{
BrowserFieldDemo app = new BrowserFieldDemo();
app.enterEventDispatcher();
}
private BrowserFieldDemo()
{
_mainScreen = new MainScreen();
pushScreen(_mainScreen);
_renderingSession = RenderingSession.getNewInstance();
// Enable javascript.
//_renderingSession.getRenderingOptions().setProperty(RenderingOptions.CORE_OPTIONS_GUID, RenderingOptions.JAVASCRIPT_ENABLED, true);
PrimaryResourceFetchThread thread = new PrimaryResourceFetchThread("http://wwww.vensi.com"+";interface=true", null, null, null, this);
thread.start();
}
void processConnection(HttpConnection connection, Event e)
{
// Cancel previous request.
if (_currentConnection != null)
{
try
{
_currentConnection.close();
}
catch (IOException e1)
{
}
}
_currentConnection = connection;
BrowserContent browserContent = null;
try
{
browserContent = _renderingSession.getBrowserContent(connection, this, e);
if (browserContent != null)
{
Field field = browserContent.getDisplayableContent();
if (field != null)
{
synchronized (Application.getEventLock())
{
_mainScreen.deleteAll();
_mainScreen.add(field);
}
}
browserContent.finishLoading();
}
}
catch (RenderingException re)
{
}
finally
{
SecondaryResourceFetchThread.doneAddingImages();
}
}
/**
* @see net.rim.device.api.browser.RenderingApplication#eventOccurred(net.rim.device.api.browser.Event)
*/
public Object eventOccurred(Event event)
{
int eventId = event.getUID();
switch (eventId)
{
case Event.EVENT_URL_REQUESTED :
{
UrlRequestedEvent urlRequestedEvent = (UrlRequestedEvent) event;
PrimaryResourceFetchThread thread = new PrimaryResourceFetchThread(urlRequestedEvent.getURL(),
urlRequestedEvent.getHeaders(),
urlRequestedEvent.getPostData(),
event, this);
thread.start();
break;
}
case Event.EVENT_BROWSER_CONTENT_CHANGED:
{
// Browser field title might have changed update title.
BrowserContentChangedEvent browserContentChangedEvent = (BrowserContentChangedEvent) event;
if (browserContentChangedEvent.getSource() instanceof BrowserContent)
{
BrowserContent browserField = (BrowserContent) browserContentChangedEvent.getSource();
String newTitle = browserField.getTitle();
if (newTitle != null)
{
synchronized (getAppEventLock())
{
_mainScreen.setTitle(newTitle);
}
}
}
break;
}
case Event.EVENT_REDIRECT :
{
RedirectEvent e = (RedirectEvent) event;
String referrer = e.getSourceURL();
switch (e.getType())
{
case RedirectEvent.TYPE_SINGLE_FRAME_REDIRECT :
// Show redirect message.
Application.getApplication().invokeAndWait(new Runnable()
{
public void run()
{
Status.show("You are being redirected to a different page...");
}
});
break;
case RedirectEvent.TYPE_JAVASCRIPT :
break;
case RedirectEvent.TYPE_META :
// MSIE and Mozilla don't send a Referer for META Refresh.
referrer = null;
break;
case RedirectEvent.TYPE_300_REDIRECT :
// MSIE, Mozilla, and Opera all send the original
// request's Referer as the Referer for the new
// request.
Object eventSource = e.getSource();
if (eventSource instanceof HttpConnection)
{
referrer = ((HttpConnection)eventSource).getRequestProperty(REFERER);
}
break;
}
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setProperty(REFERER, referrer);
PrimaryResourceFetchThread thread = new PrimaryResourceFetchThread(e.getLocation(), requestHeaders,null, event, this);
thread.start();
break;
}
case Event.EVENT_CLOSE :
// TODO: close the appication
break;
case Event.EVENT_SET_HEADER : // No cache support.
case Event.EVENT_SET_HTTP_COOKIE : // No cookie support.
case Event.EVENT_HISTORY : // No history support.
case Event.EVENT_EXECUTING_SCRIPT : // No progress bar is supported.
case Event.EVENT_FULL_WINDOW : // No full window support.
case Event.EVENT_STOP : // No stop loading support.
default :
}
return null;
}
/**
* @see net.rim.device.api.browser.RenderingApplication#getAvailableHeight(net.rim.device.api.browser.BrowserContent)
*/
public int getAvailableHeight(BrowserContent browserField)
{
// Field has full screen.
return Display.getHeight();
}
/**
* @see net.rim.device.api.browser.RenderingApplication#getAvailableWidth(net.rim.device.api.browser.BrowserContent)
*/
public int getAvailableWidth(BrowserContent browserField)
{
// Field has full screen.
return Display.getWidth();
}
/**
* @see net.rim.device.api.browser.RenderingApplication#getHistoryPosition(net.rim.device.api.browser.BrowserContent)
*/
public int getHistoryPosition(BrowserContent browserField)
{
// No history support.
return 0;
}
/**
* @see net.rim.device.api.browser.RenderingApplication#getHTTPCookie(java.lang.String)
*/
public String getHTTPCookie(String url)
{
// No cookie support.
return null;
}
/**
* @see net.rim.device.api.browser.RenderingApplication#getResource(net.rim.device.api.browser.RequestedResource,
* net.rim.device.api.browser.BrowserContent)
*/
public HttpConnection getResource(RequestedResource resource, BrowserContent referrer)
{
if (resource == null)
{
return null;
}
// Check if this is cache-only request.
if (resource.isCacheOnly())
{
// No cache support.
return null;
}
String url = resource.getUrl();
if (url == null)
{
return null;
}
// If referrer is null we must return the connection.
if (referrer == null)
{
HttpConnection connection = Utilities.makeConnection(resource.getUrl(), resource.getRequestHeaders(), null);
return connection;
}
else
{
// If referrer is provided we can set up the connection on a separate thread.
SecondaryResourceFetchThread.enqueue(resource, referrer);
}
return null;
}
/**
* @see net.rim.device.api.browser.RenderingApplication#invokeRunnable(java.lang.Runnable)
*/
public void invokeRunnable(Runnable runnable)
{
(new Thread(runnable)).start();
}
}
類PrimaryResourceFetchThread擴展Thread {
private BrowserFieldDemo _application;
private Event _event;
private byte[] _postData;
private HttpHeaders _requestHeaders;
private String _url;
PrimaryResourceFetchThread(String url, HttpHeaders requestHeaders, byte[] postData,
Event event, BrowserFieldDemo application)
{
_url = url;
_requestHeaders = requestHeaders;
_postData = postData;
_application = application;
_event = event;
}
public void run()
{
HttpConnection connection = Utilities.makeConnection(_url, _requestHeaders, _postData);
_application.processConnection(connection, _event);
}
}
樣本中存在一個錯誤,而BB人在這方面多年來一直沒有做任何事情。你永遠不會知道你的頁面沒有被渲染,你將被自己重定向到調用頁面。當他們無法呈現頁面時,他們會在HTTP響應中插入一個重定向代碼,而不是提供渲染異常(在輸入流中檢查它並將其轉換爲字符串,您應該知道),並且從不顯示預期頁面。他們已經使用BrowserField在5.0及更高版本中解決了這個問題,但我們需要低端手機的解決方案。
Dude(Abhinav)上遇到了同樣的問題,您不能在此處複製粘貼您的舊答案:http://stackoverflow.com/questions/4093634/https-page-not像這樣的瀏覽器內容。 – Irwin
- 1. 黑莓瀏覽問題
- 2. 黑莓瀏覽問題
- 3. 問題與黑莓瀏覽器
- 4. 黑莓瀏覽器緩存問題
- 5. 黑莓風暴 - 上傾斜
- 6. 黑莓風暴中的GPS Lat Lon問題
- 7. 黑莓圖片瀏覽器
- 8. 防止變焦的黑莓風暴
- 9. 黑莓瀏覽器中的Window.Opener
- 10. 設備瀏覽問題
- 11. 顯示黑莓風暴中的一行HorizontalFieldManager中的BitmapField問題
- 12. 三星設備瀏覽器問題
- 13. 黑莓RIM設備,訪問服務器問題java
- 14. 黑莓瀏覽器Javascript時間夏令時問題
- 15. 如何在黑莓風暴中設置抗鋸齒?
- 16. 退出黑莓瀏覽器的代碼
- 17. 如何識別黑莓的瀏覽器
- 18. 黑莓Facebook驗證不帶瀏覽器
- 19. 黑莓瀏覽器 - 數字鍵
- 20. 黑莓瀏覽器 - 視頻格式
- 21. 黑莓瀏覽器ASP.Net點擊事件
- 22. 如何定位黑莓瀏覽器?
- 23. 黑莓Webworks/Phonegap文件瀏覽器
- 24. 黑莓瀏覽器返回點擊
- 25. 黑莓瀏覽器字段實現
- 26. 黑莓:從嵌入式瀏覽器啓動原生瀏覽器
- 27. 從黑莓手機的設備默認瀏覽器獲取網址
- 28. 黑莓問題
- 29. 黑莓模擬器問題
- 30. 黑莓模擬器問題
我刪除了附加的長RIM演示代碼。如果您還沒有更改演示代碼,請提供鏈接。 –
我在9800 w/6.0 –