2011-03-15 4 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

Terrence ... 당신은 이것 (OS 5 이상)에 대한 답변을 얻었습니까? 그냥 궁금해서. – Nate

+0

나는 이것을 사용해 보았는데 그것은 도움이되지 못했다. 또한 그것은 내 애플 리케이션에서로드 된 html로 프레임 태그를 사용하여 문제가 발생했습니다 : 다음 링크를 참조하십시오 : http://stackoverflow.com/questions/16673051/using-browserfield-displaycontent-with-frame-that-has-an- external-url/16688255? noredirect = 1 # comment24050865_16688255 –

+0

죄송합니다, 여기 기쁨이 없습니다. –

관련 문제