问题与执行browserfield英寸; deviceside =真QUOT;黑莓SIM卡 [英] Problem executing browserfield with ";deviceside=true" on BlackBerry sim

查看:287
本文介绍了问题与执行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 =htt​​p://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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆