WebView中的Java Applet

9

我正在尝试在Java FX WebView中显示Java Applet。 然而,据我所知,这是不可能的。

如果没有Java FX WebView,我该如何完成此操作?


5
你是一个勇敢的人 :) - eckes
2
你不能这样做。WebView使用webkit来渲染网页,仅此而已。它不支持任何插件,包括Java小程序(pdf、flash等)。 - James_D
这就是为什么我想找到一个比WebView更好的解决方案的原因。 - Maeh
3个回答

3

我以前已经做过这个功能。由于性能问题,我最终放弃了将JavaFX作为我正在制作的视频游戏的Java Applet,但它仍然适用于许多其他目的。这是我使用的配置。

<html><head>
  <SCRIPT src="http://java.com/js/dtjava.js"></SCRIPT>
<script>
    function launchApplication(jnlpfile) {
        dtjava.launch(            {
                url : 'MyGame.jnlp'
            },
            {
                javafx : '2.2+'
            },
            {}
        );
        return false;
    }
</script>

<script>
    function javafxEmbed() {
        dtjava.embed(
            {
                url : 'MyGame.jnlp',
                placeholder : 'javafx-app-placeholder',
                width : 1024,
                height : 768
            },
            {
                javafx : '2.2+'
            },
            {}
        );
    }
    <!-- Embed FX application into web page once page is loaded -->
    dtjava.addOnloadCallback(javafxEmbed);
</script>

</head><body>
<h2>Test page for <b>MyGame</b></h2>
  <b>Webstart:</b> <a href='MyGame.jnlp' onclick="return launchApplication('MyGame.jnlp');">click to launch this app as webstart</a><br><hr><br>

  <!-- Applet will be inserted here -->
  <div id='javafx-app-placeholder'></div>
</body></html>

我使用了JNLP来完成这个操作。这是我的JNLP文件。
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="MyGame.jnlp">
  <information>
    <title>MyGame</title>
    <vendor>Jose</vendor>
    <description>Sample JavaFX 2.0 application.</description>
    <icon href="C:\Users\jose\Dropbox\MyGame\java7\MyGame/MyGame.ico" />
    <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="MyGame.jar" size="27670609" download="eager" />
  </resources>
  <applet-desc  width="1024" height="768" main-class="com.javafx.main.NoJavaFXFallback"  name="MyGame" >
    <param name="requiredFXVersion" value="2.2+"/>
  </applet-desc>
  <jfx:javafx-desc  width="1024" height="768" main-class="game.Game"  name="MyGame" />
  <update check="background"/>
</jnlp>

希望这可以帮到您。如果您有任何后续问题,请告诉我。

我做了一个关于如何将JavaFX应用程序嵌入网站的教程:https://dev59.com/0l4c5IYBdhLWcg3wY5qW - Roland
感谢您抽出时间回答问题。然而,我想在Java应用程序中的WebView中显示来自外部网站的小程序。 - Maeh

1
JavaFX Web视图不支持小程序,因此它对您无效。您应该考虑使用其他可嵌入的浏览器,如JCEFNativeSwing中的JWebBrowser或其他组件。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接