0

블랙 베리 네이티브에서 자바 스크립트로 일부 메소드를 호출해야하는 앱을 개발 중입니다.블랙 베리 네이티브에서 자바 스크립트 함수를 호출하는 방법?

뒤로 키 이벤트를 클릭하면 onBackKeyDown() 메서드가 실행됩니다.이 메서드는 javascript에 선언되어 있습니다. 내가 방법 "extendScriptEngine"를 사용하여 호출되는 자바 스크립트에 선언 된 것을 생각 데 따라

Main.java

protected boolean keyDown(int keycode, int time) { 
    // TODO Auto-generated method stub 

    if(Keypad.key(keycode) == Keypad.KEY_ESCAPE) 
    { 
      // onBackKeyDown(); 
     // i want to call the following method which is declared in main.js file 
     Dialog.alert("this is back button");   
     return true; 

    } 
    return super.keyDown(keycode, time); 
} 

main.js

function onBackKeyDown() { 
    try { 
     if ($.mobile.activePage.is("#Page1")) { 
     $.mobile.changePage("#page5"); 
     } else if ($.mobile.activePage.is("#page2")) { 
      $.mobile.changePage("#main"); 
     } else if ($.mobile.activePage.is("#page3")) { 
      $.mobile.changePage("#main"); 
     } else if ($.mobile.activePage.is("#main")) { 
      navigator.app.exitApp(); 
     } 
} catch(e) { 
    alert("Exception:ConsoleLog.log:" + e); 
} 

}

네이티브. 하지만 여기에 내 위의 코드에 따라 네이티브에있는 자바 스크립트에서 메서드를 호출하는 ... 아무도 나를 도와주세요.

답변

0

이 코드는 표시하지 않지만, 앱에 HTML 콘텐츠를 표시하는 브라우저 입력란이 포함 된 Screen이 있습니다.

코드를 보지 않고 말할 수는 없지만, 앱이 OS 5.0 이상 만 지원하면 net.rim.device.api.browser.field2.BrowserField (브라우저 입력란 2)을 사용하는 것이 좋습니다.

OS 5.0 미만을 지원해야하는 경우 I'm not sure how to do that입니다.

어쨌든이 5.0 BrowserField, 당신은이 작업을 수행 할 수 있습니다

BrowserFieldConfig config = new BrowserFieldConfig(); 
config.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED, Boolean.TRUE); // should be the default 

// Browser basic initialization 
BrowserField _browserField = new BrowserField(config); 

다음

protected boolean keyDown(int keycode, int time) 
{ 
    if(Keypad.key(keycode) == Keypad.KEY_ESCAPE) 
    { 
     // i want to call the following method which is declared in main.js file 
     _browserField.executeScript("onBackKeyDown()"); 
     Dialog.alert("this is back button");   
     return true; 

    } 
    return super.keyDown(keycode, time); 
}