【问题标题】:JavaFX: Pass arguments from JavaScript to JNLPJavaFX:将参数从 JavaScript 传递到 JNLP
【发布时间】:2013-03-16 01:57:48
【问题描述】:

我正在尝试使用 Java Web start(由 NetBeans 生成)部署 JavaFX 2 应用程序,我需要使用 JavaScript 将一些参数传递给我的应用程序。

第一个问题:有可能吗? 第二个问题:如果可能,我该怎么做。 :-)

我的 JNLP 文件是:

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="MD.jnlp">
  <information>
    <title>MD</title>
    <offline-allowed/>
  </information>
  <resources>
    <jfx:javafx-runtime version="2.2+" href="http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp"/>
  </resources>
  <resources>
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
    <jar href="MD.jar" size="675286" download="eager" />
    <jar href="lib/log4j-1.2.17.jar" size="519899" download="eager" />
  </resources>
<security>
  <all-permissions/>
</security>

  <applet-desc  width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback"  name="MD" >
    <param name="requiredFXVersion" value="2.2+"/>
  </applet-desc>
  <jfx:javafx-desc  width="800" height="600" main-class="com.blabla.MD"  name="MD" >
    <fx:param name="jmeno" value="hodnota"/>
  </jfx:javafx-desc>
  <update check="always"/>
</jnlp>

我的网页有这个代码:

<SCRIPT src="./web-files/dtjava.js"></SCRIPT>
<script>
function launchApplication(jnlpfile) {
    dtjava.launch(            {
            url : 'MD.jnlp',
        },
        {
            javafx : '2.2+'
        },
        {}
    );
    return false;
}
</script>

谢谢。 :-)

【问题讨论】:

    标签: java javascript jnlp argument-passing


    【解决方案1】:

    已解决:

    function launchApplication(jnlpfile) {
                dtjava.launch({
                    url: 'MD.jnlp',
                    params: {'name':'value'}
                },
                {
                    javafx: '2.2+'
                },
                {}
                );
                return false;
            }
    

    在 JavaFX 应用程序中,参数不在 String[] args 中,但您必须使用方法:

    getParameters();
    

    这在JavaFX Deployment Guide documentation for the Java Deployment Tookit (dtjava.js) 以及JavaFX 应用程序getParameters 方法JavaDoc 中有记录。

    【讨论】:

    • 是否可以将数组作为参数而不是字符串传递?
    【解决方案2】:

    第一个问题:有可能吗?

    是的,一般来说是可以的。我做过类似的事情,但不是直接从 JavaScript 到 JNLP。

    第二个问题:如果可能,我该怎么做。 :-)

    在我的场景中,我只做了 JNLP 部分而不是 JS。但是这样想:用户通过社交网络之一登录网页(涉及 JS)。 JS 和 Ajax 将所需的值传递到服务器端,并将用户重定向到部署 JNLP 小程序的页面。

    在服务器端有一个jnlp文件模板:

    <fx:param name="jmeno" value="{value}"/>
    

    那么由于服务器通过 Ajax 获得了一个值,它可以使用 PHP 或 JSP 生成正确的 jnlp 文件并将其提供给用户的浏览器。

    【讨论】:

      猜你喜欢
      • 2018-05-30
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      相关资源
      最近更新 更多