如何从JavaScript代码调用EclipseRCP透视图(Java类方法)?

如何从JavaScript代码调用EclipseRCP透视图(Java类方法)?,javascript,java,html,eclipse-rcp,Javascript,Java,Html,Eclipse Rcp,我想从JavaScript函数调用或打开透视图(或视图) 我有一个EclipseRCP应用程序,其中嵌入了我的HTML页面。在HTML页面上单击按钮,我想打开EclipseRCP透视图或视图 我已经从javascript函数中尝试了如下所示 function populateGeometryData(){ alert('Inside populateGeometryData() function !!!!!'); var geoMetryDataClass = Java.type("com.te

我想从JavaScript函数调用或打开透视图(或视图)

我有一个EclipseRCP应用程序,其中嵌入了我的HTML页面。在HTML页面上单击按钮,我想打开EclipseRCP透视图或视图

我已经从javascript函数中尝试了如下所示

function populateGeometryData(){
alert('Inside populateGeometryData() function !!!!!');
var geoMetryDataClass = Java.type("com.test.app.ui.view.PageView");
geoMetryDataClass.populateGemetryData("TestVal");
}
其中PageView是我的观点之一。但我得到了“未捕获引用错误:未定义Java”。
我认为,这个错误是因为Chrome不再支持NPAPI(Java小程序所需的技术)。那么,还有其他方法可以从JavaScript调用Java类方法吗

下面是如何从EclipseRCP代码启动HTML页面的

   @Override
   public void createPartControl(Composite parent) {

    String user = ExecuteRestService.getLoggedInUser();
    System.out.println("Login User "+user);


    String html = "/Pages/index.html";
    Bundle appBundle = FrameworkUtil.getBundle(this.getClass());
    if(appBundle == null) {
        System.out.println("bundle  is null");
        return;
    }

    URL url = FileLocator.find(appBundle, new Path(html), null);

    try {
        url = FileLocator.toFileURL(url);
    } catch (IOException e) {
        // TODO Auto-generated catch block@*
        e.printStackTrace();
    }
    Browser  browser = new Browser(parent, SWT.None);
    String urlVal = url.toString()+"?LoginUser="+user;
    browser.setUrl(urlVal);

}
我正在寻找一些关于调用Java类方法或从JavaScript函数调用EclipseRCP透视图的建议。 先谢谢你

更新

正如注释部分所建议的那样,如果您使用SWT浏览器启动HTML页面,那么使用“BrowserFunction”我们可以从javascript调用Eclipse RCP中的Java类方法

new BrowserFunction(browser, "populateGeometricData")
    {
        @Override
        public Object function(Object[] objects)
        {

            if(objects.length == 0) {
                System.out.println(" array is zero");
            }else {
                System.out.println("Call from Javascript" 
                         + objects.length);
                System.out.println("Request Id "+ objects[0]);
            }


            return null;
        }
    };

HTML是在RCP的SWT浏览器中运行还是在普通浏览器中运行?您好,Greg,HTML是在RCP的SWT浏览器中运行的。然后使用
BrowserFunction
-请参见Greg,我使用了BrowserFunction,我观察到的是,它调用java类方法,但javascript函数中的代码没有调用,甚至没有发出警报。除了从javascript函数调用javamethod外,我还需要传递参数。我想在java方法中使用这些参数值。这可能吗?对不起,我不明白你在说什么。BrowserFunction用于从浏览器中的Javascript代码调用Java方法。答案中的链接详细解释了这一点。