我正在构建一个将在浏览器中运行的 JavaFX 应用程序。是否可以在 JavaFX 中获取应用程序 URL,例如 localhost/Java/MyApp/dist/index.html?x=123?
我需要接收那个“x”参数。
我正在构建一个将在浏览器中运行的 JavaFX 应用程序。是否可以在 JavaFX 中获取应用程序 URL,例如 localhost/Java/MyApp/dist/index.html?x=123?
我需要接收那个“x”参数。
您可以从页面获取 url 参数:Get escaped URL parameter
function getURLParameter(name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null;
}
获得参数后,您可以使用 JavaFX 部署工具包 DTJava.js 函数将参数传递给嵌入式 JavaFX 应用程序。请参阅JavaFX 部署指南的第7.3.3 节将参数传递给 Web 应用程序。
<!-- Example 7-7 Pass Parameters to an Embedded Application -->
<head>
<script type="text/javascript" src="http://java.com/js/dtjava.js"></script>
<script>
function deployIt() {
// deployment guide sample modified by me to show
// getting the zipcode parameter from the url instead of hardcoding it.
//var zipcode = 95054;
var zipcode = getURLParameter("zipcode");
dtjava.embed(
{ id: "myApp",
url: "Map.jnlp",
width: 300,
height: 200,
placeholder: "place",
params: {
mode: "streetview",
zip: zipcode
}
},
{ javafx: "2.1+" },
{}
);
}
dtjava.addOnloadCallback(deployIt);
</script>
</head>
<body>
<div id="place"></div>
</body>
http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm#BABJHEJA
正如 JavaFX 部署指南所说,要访问应用程序代码中的参数,请使用 Application 类的getParameters()方法。例如:
String zipcode = app.getParameters().getNamed("zip");