Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 黑莓storm设备浏览器文件问题_Java_Blackberry - Fatal编程技术网

Java 黑莓storm设备浏览器文件问题

Java 黑莓storm设备浏览器文件问题,java,blackberry,Java,Blackberry,我正在使用一个浏览器字段,它将显示在模拟器4.7 storm中。但当我在设备上执行时,它仍然为空,页面也不会显示。有人能帮忙吗。这是代码,我尝试在url中附加;interface=true“仍然在9550设备上不执行,而在9550模拟器中它正在执行 /* *BrowserFieldDemo.java * *版权所有©1998-2009运动研究有限公司。 * *注意:为了简单起见,此示例应用程序可能不会利用 *资源束和资源字符串。但是,强烈建议您这样做 *应用程序开发人员利用可用的本地化功能

我正在使用一个浏览器字段,它将显示在模拟器4.7 storm中。但当我在设备上执行时,它仍然为空,页面也不会显示。有人能帮忙吗。

这是代码,我尝试在url中附加;interface=true“仍然在9550设备上不执行,而在9550模拟器中它正在执行

/* *BrowserFieldDemo.java * *版权所有©1998-2009运动研究有限公司。 * *注意:为了简单起见,此示例应用程序可能不会利用 *资源束和资源字符串。但是,强烈建议您这样做 *应用程序开发人员利用可用的本地化功能 *在BlackBerry开发平台内,确保无缝应用程序 *具有跨多种语言和地域的经验。更多信息 *关于本地化应用程序,请参阅BlackBerry Java开发 *与此版本关联的环境开发指南。 */

导入java.io.IOException

导入javax.microedition.io.HttpConnection

导入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.Status; 导入net.rim.device.api.ui.container.main屏幕; 导入net.rim.device.api.system.*

最终类BrowserFieldDemo扩展UiApplication实现渲染应用程序 {

}

类PrimaryResourceFetchThread扩展线程 {


}

样本中有一个bug,BB人员多年来在这方面什么也没做过。。您永远不会知道您的页面没有呈现,您将被重定向到调用页面。当他们无法呈现页面时,他们会在HTTP响应中插入重定向代码,而不是给出呈现异常(在inputstream中签出并将其转换为字符串,您应该知道),并且永远不会显示预期的页面。他们在5.0及更高版本中使用BrowserField解决了这个问题,但我们需要低端手机的解决方案。

我删除了附加的长RIM演示代码。如果你根本没有更改演示代码,请提供一个链接。我在9800 w/6.0 Dude(Abhinav)上遇到了同样的问题,你不能复制粘贴你的旧答案:像那样。
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();
}    
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);        
}