如何从blackberry native调用javascript函数?

如何从blackberry native调用javascript函数?,blackberry,blackberry-jde,scriptengine,javascript-engine,Blackberry,Blackberry Jde,Scriptengine,Javascript Engine,我正在开发一个应用程序,我需要调用一些从blackberry本机到javascript的方法 当我单击BackKeyDown事件时,我想触发onBackKeyDown()方法,该方法是用javascript声明的 Main.java protected boolean keyDown(int keycode, int time) { // TODO Auto-generated method stub if(Keypad.key(keycode) == Keypad.KEY_E

我正在开发一个应用程序,我需要调用一些从blackberry本机到javascript的方法

当我单击BackKeyDown事件时,我想触发onBackKeyDown()方法,该方法是用javascript声明的

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);
}
}


我的想法是,通过使用“extendScriptEngine”,javascript中声明的方法将在本机中调用。但是在这里如何调用javascript中的方法,这些方法是根据我上面的代码使用的本机语言。。。有人能帮我解决这个问题吗…

您没有显示此代码,但我必须假设您的应用程序有一些
屏幕
,其中包含某种浏览器字段,显示HTML内容

如果你的应用程序只需要支持OS 5.0或更高版本,我不能在没有看到代码的情况下肯定地告诉你,但我建议你使用
net.rim.device.api.browser.field2.BrowserField
(浏览器字段2)

如果您必须支持低于OS 5.0的操作系统

无论如何,使用此5.0+
浏览器字段
,您可以执行以下操作:

BrowserFieldConfig=new BrowserFieldConfig();
config.setProperty(BrowserFieldConfig.JAVASCRIPT_已启用,Boolean.TRUE);//应该是默认值
//浏览器基本初始化
BrowserField _BrowserField=新BrowserField(配置);
然后

protected boolean keyDown(int-keycode,int-time)
{
如果(键盘键(键盘代码)=键盘键
{
//我想调用main.js文件中声明的以下方法
_executeScript(“onBackKeyDown()”);
警告(“这是后退按钮”);
返回true;
}
返回super.keyDown(keycode,time);
}