@JSAccessible的使用

如果你想在电脑端的浏览器中实现类似的JavaScript与Java交互,可以使用JavaFX中的WebView组件来加载网页,并通过Java的JSObject来实现JavaScript与Java的通信。以下是一个简单的示例代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import netscape.javascript.JSObject;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine();

        webEngine.load(getClass().getResource("index.html").toExternalForm());

        JSObject jsobj = (JSObject) webEngine.executeScript("window");

        jsobj.setMember("chromeObj", new ChromeObject());

        Scene scene = new Scene(webView, 800, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

    public class ChromeObject {
        @JSAccessible
        public void startDataobtain(String cookie, String accountId, String planTime, String endTime) {
            // 在这里实现Java端的处理逻辑
            System.out.println("Received data from JavaScript:");
            System.out.println("Cookie: " + cookie);
            System.out.println("Account ID: " + accountId);
            System.out.println("Plan Time: " + planTime);
            System.out.println("End Time: " + endTime);
        }
    }
}

在上面的代码中,我们创建了一个JavaFX应用程序,加载了一个包含JavaScript调用的网页。通过JSObject将Java对象ChromeObject暴露给JavaScript,从而实现JavaScript与Java的交互。

在JavaScript代码中,可以调用Java方法:

<!DOCTYPE html>
<html>
<head>
    <title>JavaScript与Java交互</title>
</head>
<body>
    <button onclick="chromeObj.startDataobtain('cookies', 'accountIds', 'planTime', 'endTime')">调用Java方法</button>
</body>
</html>

当点击按钮时,JavaScript会调用Java中ChromeObject类的startDataobtain方法,并将参数传递给Java端,实现JavaScript与Java的交互。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值