2011-03-15 53 views
0

我编写了一些代码来连接到BrowserField中的URL。在这个过程中,它显示了非法的国家例外。如果我点击继续,然后它连接。我不明白是什么问题。连接到BrowserField中的URL时出现非法状态异常

这里是我使用的代码:

class MoreBrowserScreen extends MainScreen 
{ 
    String email; 
    public MoreBrowserScreen(String email) 
    { 
     this.email=email; 
     setTitle(HeaderManager.tabsManager()); 
     HeaderManager.more.setFocus(); 
     TabsManager(Paths.HOME,Paths.ALERTS,Paths.COLL,Paths.APP,Paths.FMORE).getTabs(); 

     BrowserField myBrowserField = new BrowserField(); 
     add(myBrowserField); 

     myBrowserField.requestContent(email); 
    } 
    protected void makeMenu(Menu menu, int instance) 
    { 
     MenuItemClass mic = new MenuItemClass(); 
     menu.add(mic.getExitItem(0, 0)); 
    } 

回答

1

您好我有同样的问题, 首先你需要,因为你是在事件线程使用的invokeLater,出于某种神秘的原因,也将焦点设置到浏览器, 这里是解决我的问题:

private void buttonClicked() { 
    UiApplication.getUiApplication().invokeLater(new Runnable() {   
    public void run() {  
     browser.setFocus(); 
     browser.requestContent("http://www.blackberry.com/developers" + ";deviceside=true"); 
    } 
}); 
0

我一直在拉我的头发就这一个了。我尝试了browser.setFocus(),它部分工作。然后我意识到还有另一个问题。有些网站会自动重定向,导致BrowserField刷新并再次产生错误。 所以这里是一劳永逸解决问题的解决方案。 首先将browserField声明为类成员。

private BrowserField browserField; 

然后,当您实例化您的BrowserField时,请执行以下操作。

browserField = new BrowserField(); 
    ProtocolController eventsProtocolController = new ProtocolController(browserField) { 
     public void handleNavigationRequest(BrowserFieldRequest request) throws Exception { 
      browserField.setFocus(); 
      super.handleNavigationRequest(request); 
     } 
    }; 
    browserField.getConfig().setProperty(BrowserFieldConfig.CONTROLLER, eventsProtocolController); 

看来,当有屏幕,可以“偷”走专注于其他领域出现此问题。所以上面的代码将确保任何导航都会强制焦点回到BrowserField。在我看来,这是BrowserField的问题,但这里是我的工作。

感叹!似乎经过测试,这种解决方法只适用于OS 6 ..但不适用于OS 5.我还没有找到OS 5的任何解决方案。

+0

泰伦斯......你有没有得到一个适合你的答案(OS 5及以上版本)?只是好奇。 – Nate 2013-05-23 02:06:08

+0

我试过用这个,它没有帮助我。此外,它也导致我在使用从我的应用程序加载的html中使用框架标签的问题:请参阅以下链接:http://stackoverflow.com/questions/16673051/using-browserfield-displaycontent-with-frame-that-has-an- external-url/16688255?noredirect = 1#comment24050865_16688255 – 2013-05-28 06:15:45

+0

对不起,没有喜悦 – 2013-07-01 08:27:03