问题标签 [liveconnect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2246 浏览

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

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

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

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

加载小程序后,我会尝试在其上调用函数,如下所示:

在萤火虫控制台中,我收到以下错误:

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

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

任何帮助将不胜感激!

干杯


更新:这是暴露我试图调用的公共 api 的精简 java 代码。


更新 [已解决]:

我弄清楚问题到底出在哪里。原来我使用的 Gson 库没有签名;但我自己的罐子是。Windows 上的浏览​​器要求所有库都经过签名;所以我用我的java文件打包Gson并签署了很多,它解决了问题!感谢大家的帮助!

0 投票
2 回答
377 浏览

java - javascript 和实时连接

我写了一个简单的 html 文件,使用 javascript 打印 10 个随机数。javascript 对象依次使用 java.util.Random 类(实时连接)来输出结果!但是在使用 onLoad 或 onclick 等函数和事件时,我没有得到准确的输出!

/blockquote>

如果我们不使用函数,我可以获得输出!

/blockquote>

任何人都可以帮我解决这个错误!

0 投票
1 回答
2126 浏览

java - 我如何实际运行 Rhino?

我已经阅读了这里的文档:Mozilla's 'Scripting Java'

这些示例也不能回答我的问题:Rhino Liveconnect example

例如,我的 javascript 文件如何知道在哪里可以找到“java.lang”?当然,它可以在 Rhino shell 中运行,但我需要从我的 javascript 文件中运行 java 代码,而不是从 shell 中运行。我只能在下载的源代码中看到 .java 文件。

我想在我的服务器端 nodejs javascript 中调用服务器端 java 方法。是否不需要以某种方式启动 Rhino 来为我的 javascript 提供理解 java 的能力?

编辑: @eee 所以如果我理解正确,Rhino 实际上并没有让我从 javascript 运行 java,它只是将我所有的 javascript 转换为 java .class 文件......毕竟我必须在 java 文件中执行?这违背了从 javascript 调用 java 的目的。整个想法是能够从我的 javascript 代码中调用任何 java 代码,而无需构建新的 java 库。

那不是说我不能用Rhino吗?Nodejs 使用 V8 引擎来执行 javascript,所以我假设一个 javascript 文件不能同时被 V8 和 Rhino 使用......我希望我可以调用 java 方法,这将启动 Rhino 来翻译这些调用到爪哇。然后,Java 本身将返回填充了一些数据的变量。

@Peter:为什么是 http 调用?我的 javascript 和我的 java 现在都位于同一台服务器上。无论如何,你所说的并不完全需要 Rhino,不是吗?我会创建一堆 .class 文件,然后调用'java myfile.class -v“firstvar”-x“secondvar”'..我理解正确吗?

0 投票
0 回答
792 浏览

java - 如何通过 LiveConnect 将 JavaScript 类型的数组传递给 Java 小程序?

我正在尝试将 ArrayBuffer 传递给 Java 小程序,但无法猜测该怎么做。处理标准 JS 数组非常容易,并且它们适用于 Sun 的插件(不适用于 IcedTea)。我可以将 ArrayBuffer 作为 Object 或 JSObject 传递,但无法获取数组的数据。

有任何想法吗?谢谢。

0 投票
1 回答
423 浏览

java - ubuntu/firefox 上的 liveconnect

这适用于 Windows 上的 chrome canary/firefox 4 等:

但在 firefox 4 ubuntu 上,它只会抛出 java.net.MalformedURLException: unknown protocol: javascript

它不会在 Windows 上引发此异常。

关于如何使这项工作的任何想法?即使使用从 Applet 调用 JS 的第一个答案忽略异常: MalformedURLException: unknown protocol: javascript the javascript does not run

0 投票
1 回答
579 浏览

java - 如何将 java 与 javascript 调用分离?Applet 正在等待自己!

我无法避免在我的小程序中出现零星崩溃,这似乎是由线程等待自身引起的。奇怪的是,这似乎只发生在谷歌浏览器中。

30 秒阅读:

  • Applet.methodA() 调用 JSObject.javascriptMethod()
  • javascriptMethod() 进行 Applet.methodB() 调用
  • Applet.methodB() 等待 Applet.methodA() 释放它的锁,这永远不会发生..

我试过的:

  • 在 javascriptMethod 中使用 setTimeout。那里没有运气。
  • 使用 JSObject.eval() 而不是 JSObject.call()

也有可能: 我完全误解了线程转储。这里是为了检查。

我的理解:

  1. 定序器线程调用 applet.notifyPosition
  2. notifyPosition 调用一个 javascript 方法
  3. javascript方法调用applet.pause
  4. applet.pause 需要锁定定序器,但不能,因为它正忙于调用 notifyposition..

    /li>
0 投票
2 回答
896 浏览

java - Applet 如何调用不同框架中的方法(来自同一个网站)?

给定一个多框架 Web 应用程序的一个框架中的 Applet,其中所有框架都从同一个 Web 服务器加载,那么该 Applet 如何调用其他框架中的 JavaScript 方法?我试过这样的事情:

我收到投诉说该功能不存在。但是,如果我这样调用它:

然后它工作。我试图避免使用eval. 在 Applet 的不同框架中调用代码是否call在每个浏览器和 JVM 组合中可能具有不同的行为?更安全,因为它是eval在 JavaScript 引擎中评估的,而不是部分在 Applet 端?

0 投票
0 回答
388 浏览

java - 从 Gecko(firefox 扩展)中的 java 对象中高效地流式传输音频样本

我正在编写一个需要播放某个 PCM 流的 Firefox 扩展。通过 LiveConnect 从 java 模块中检索样本:

Java代码:

Javascript代码:

上面的代码可以工作,但速度很慢。将 java 字节数组转换为 Float32Array 似乎相当昂贵。转换是必要的,因为无法将 java 字节数组传递给 mozWriteAudio 函数。

我的问题是:

  1. 有没有办法更有效地进行转换?
  2. 有没有办法让 java 代码返回一个 Javascript Float32Array 对象而不是一个 java 对象?
  3. 是否有允许播放可在 Firefox 扩展中使用的 PCM 音频的 java 实现?通过使用 javascript 代码使用该 java 实现将不需要上述转换。

任何其他想法/方向将不胜感激。

0 投票
1 回答
3742 浏览

oauth - 如何从 Windows Live 获取用户的联系人电子邮件数据?

我知道有类似的问题,但请耐心等待...

关于仅获取联系人电子邮件地址的散列版本,我遇到了与其他提问者类似的问题,并了解原因

问题是,我注意到 google+ 似乎能够使用 LiveConnect 很好地获取联系电子邮件地址。使用提琴手,我注意到他们似乎正在请求一个似乎没有记录的身份验证范围“wl.contacts_emails” 。

一些谷歌搜索建议“增强权限”,但在他们的网站上设置或编辑 Windows Live Connect 应用程序时没有提及这一点。

如何在我的应用程序上获取此范围?

0 投票
1 回答
1866 浏览

c# - SkyDrive 创建文件夹问题

我在这里阅读了有关使用 Live SDK 在 SkyDrive 中创建文件夹的信息(此处未提及“边界”参数),这是我的代码:

不知道为什么我会得到 400 的回报:

{ "error": { "code": "request_header_invalid", "message": "提供的标头 'Content-Type' 缺少必需的参数 'boundary'。" } }

我做错了什么?我有什么遗漏吗?

谢谢你的时间!