gpt4 book ai didi

使用 LiveConnect 的 Javascript 到 Java 通信不起作用

转载 作者:可可西里 更新时间:2023-11-01 10:39:53 26 4
gpt4 key购买 nike

我一直致力于一个项目,该项目需要在 Java 和 JavaScript 之间进行双向通信。我已经成功地让它在 OS X 的所有浏览器下运行,但我现在面临着让它在 Windows 上的任何浏览器下运行的挑战。目前它根本不起作用。

我只是想知道是否需要做一些特殊的事情才能使 JavaScript 与 Java 通信?

我的小程序代码如下所示:

<applet id='theApplet' 
code="com/company/MyApplet.class"
archive="SMyApplet.jar"
height="50" width="900"
mayscript="true" scriptable="yes">
Your browser is ignoring the applet tag.
</applet>

加载小程序后,我会尝试像这样调用它的函数:

 alert("Call some java:" + theApplet.testFunc());

并且在 firebug 控制台中出现以下错误:

theApplet.testFunc is not a function

我可以确认这在 IE 中也不起作用。

当页面加载时,我打开了 java 控制台,我可以看到小程序已成功加载并准备好接受调用。

如有任何帮助,我们将不胜感激!

干杯


更新:这是公开我试图调用的公共(public) api 的精简 java 代码。

package com.company;

import com.google.gson.Gson;

import java.applet.*;
import java.io.*;
import java.net.*;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.*;

import javax.xml.namespace.QName;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.*;

import netscape.javascript.*;

public class MyApplet extends Applet implements Runnable
{
public void init()
{
JSON = new Gson();
isReadyVar = 0;
workThread = null;
}

public void start()
{
}

public void run()
{
System.out.println("Done");
}


public void stop()
{
}

public void destroy()
{
}

/* Public API */

public int testFunc()
{
return 200;
}
}

更新[已解决]:

我想通了到底是什么问题。原来我使用的 Gson lib 没有签名;但我自己的 jar 是。 Windows 上的浏览​​器要求所有库都已签名;所以我将 Gson 与我的 java 文件打包在一起并签署了很多,它解决了问题!感谢大家的帮助!

最佳答案

我想通了到底是什么问题。原来我使用的 Gson lib 没有签名;但我自己的 jar 是。 Windows 上的浏览​​器要求所有库都已签名;所以我将 Gson 与我的 java 文件打包在一起并签署了很多,它解决了问题!感谢大家的帮助!

关于使用 LiveConnect 的 Javascript 到 Java 通信不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5615886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com