相关疑难解决方法(0)

垃圾收集后Javascript的JavaFx WebView回调失败

我目前正在开发基于JavaFX的应用程序,用户可以在该应用程序中与世界地图上标记的地点进行交互.为此,我使用的方法类似于http://captaincasa.blogspot.de/2014/01/javafx-and-osm-openstreetmap.html([1 ])中描述的方法.

但是,我正面临一个难以调试的问题,该问题与使用WebEngine的setMember()方法注入嵌入式HTML页面的Javascript回调变量有关(另请参阅https://docs.oracle.com/javase/8/javafx /embedded-browser-tutorial/js-javafx.htm([2 ])用于官方教程).

运行程序一段时间后,回调变量无法预测地失去其状态!为了演示这种行为,我开发了一个最小的工作/失败示例.我在Windows 10计算机上使用64位的jdk1.8.0_121.

JavaFx应用程序如下所示:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import javafx.application.Application;
import javafx.concurrent.Worker.State;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import netscape.javascript.JSObject;

public class WebViewJsCallbackTest extends Application {

    private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

    public static void main(String[] args) {
        launch(args);
    }

    public class JavaScriptBridge {
        public void callback(String data) {
            System.out.println("callback retrieved: " + data);
        }
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        WebView …
Run Code Online (Sandbox Code Playgroud)

javascript java garbage-collection javafx webview

9
推荐指数
1
解决办法
1553
查看次数

标签 统计

garbage-collection ×1

java ×1

javafx ×1

javascript ×1

webview ×1