JavaFx Webview 与js(vue)交互

这篇具有很好参考价值的文章主要介绍了JavaFx Webview 与js(vue)交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. js调用Java

Java 代码:
(1)CallFromJs 注意这里的类 必须加Public,不是方法加public!!!是类!!!

public class  CallFromJs{
    public String callFromJs(String info){
        return "java" + info;
    }
}

(2)javaFx main函数

import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import netscape.javascript.JSObject;

public class App extends Application{    
    public static void main(String[] args) throws Exception {
        System.out.println("Hello, World!");
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        // TODO Auto-generated method stub
        primaryStage.setTitle("Hello, World!");
        WebView webView = new WebView();
        // setting min height
        webView.minHeight(600);
        // setting preferred width
        webView.prefWidth(1950);
        // setting pref heigth
        webView.prefHeight(600);
        //setting min width
        webView.minWidth(1050);
        WebEngine engine = webView.getEngine();
        CallFromJs bridge = new CallFromJs();
        engine.getLoadWorker().stateProperty().addListener(
			(ObservableValue<? extends Worker.State> ov, Worker.State oldState, Worker.State newState) -> {
				if (newState == Worker.State.SUCCEEDED) {
	                JSObject window = (JSObject) engine.executeScript("window");
                    //("window");
	                window.setMember("apps", bridge);
                    window.setMember("sout", System.out);
                    System.out.println("hasinit");
    	        }
            }
        );
        engine.load("http://192.168.31.96:8080/");
        VBox root = new VBox();
        root.getChildren().add(webView);
        Scene scene = new Scene(root,960,600);

        primaryStage.setScene(scene);


        primaryStage.show();
        
    }
}

vue中执行代码文章来源地址https://www.toymoban.com/news/detail-622404.html


export default {
  name: 'App',
  components: {
    HelloWorld
  },
  data(){
    return{
      apps:"",
      tit:"btn"
    }
  },
  methods:{
    callJavaFx(){
      window.sout.println(window.apps.callFromJs("ja"))
      var javaja = window.apps.callFromJs("ja")
      this.tit = javaja
    }
    
  }
}


java调js

WebEngine engine = webviewid.getEngine();
String callJsMethod = "jsMethod(data)";			
Object executeScript = engine.executeScript(callJsMethod);

到了这里,关于JavaFx Webview 与js(vue)交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习js与安卓的交互以及WebView的那些坑

    } @Override public void onReceivedTitle(WebView view, String title) { titleview.setText(title); } }); 一个demo示范一下以上几个类的用法: activity_main.xml如下: ?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"? RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android” xmlns:tools=“http://schemas.android.com/tools” android:layout_

    2024年04月13日
    浏览(34)
  • 在 Flutter 中使用 webview_flutter 4.0 | js 交互

    大家好,我是 17。 已经有很多关于 Flutter WebView 的文章了,为什么还要写一篇。两个原因: Flutter WebView 是 Flutter 开发的必备技能 现有的文章都是关于老版本的,新版本 4.x 有了重要变化,基于 3.x 的代码很多要重写。 WebView 的文章分两篇 在 Flutter 中使用 webview_flutter 4.0 | js

    2024年01月18日
    浏览(41)
  • Android与H5交互 -- 点击H5跳转到 Android原生 页面 ,webview与h5(js)交互

    Android与H5交互 app开发过程中,利用原生+h5模式来开发是比较常见的 下面案例演示的是:原生调起一个H5页面,然后H5点击跳转到原生 WebViewActivity页面 调用H5 ,点击H5链接 跳转到原生MainActivity页面 注意 别忘了 !-- 添加网络权限 -- 一、清单文件,增加的配置 data的数据就是H5

    2023年04月14日
    浏览(72)
  • 基于JavaFX的扫雷游戏实现(三)——交互逻辑

      相信阅读过上期文章,动手能力强的朋友们已经自己跑出来界面了。所以这期我要讲的是交互部分,也就是对于鼠标点击事件的响应,包括计时计数对点击事件以及一些状态量的影响。   回忆下第一期介绍的扫雷规则和操作,游戏从开局到结束可能会涉及到哪些情况呢

    2024年02月12日
    浏览(48)
  • JavaFX入门和网格布局面板的使用,Dao层交互,舞台与场景切换以及其他控件的使用

    网格布局 将整个面板划分为若干个格子 , 每个格子的大小是一样的 , 每个格子中可以放置一个控件(布局) , 类似于表格的方式。在网格布局 中放入控件的时候 , 还需要指定位置。 我们将要排出这个布局 , 也就是登陆页面的优化版本 位置原理讲解 以网格布局的思维来拆分

    2024年02月04日
    浏览(42)
  • WebView交互架构项目实战(三):多进程WebView使用实践

    更新原理: 1、当浏览器首次请求资源的时候,服务器会返回200的状态码(ok),内容为请求的资源,同时response header会有一个ETag标记,该标记是服务器端根据容器(IIS或者Apache等等)中配置的ETag生成策略生成的一串唯一标识资源的字符串,ETag格式为 ETag:“856247206” 2、当浏览

    2024年04月15日
    浏览(54)
  • WebView交互架构项目实战(四):WebView与Native的通信框架手写实践

    其中wholeJS就是JS文件转化而来的字符串,然后调用 webView.loadUrl(\\\"javascript: \\\" + wholeJS); 1 就可以看到和之前一样的效果。 方式2: 通过evaluateJavascript方法 相较于loadUrl,evaluateJavascript的优势在于异步加载,还可以将执行JS代码的结果带回来,我们以下面一个小例子来说明。 我们在

    2024年04月29日
    浏览(42)
  • Flutter与Webview交互

    flutter层不支持webview,加载网页的功能还需要借助控件来处理。 通过pub.dev搜索以及对比网上文章,发现了几个比较受欢迎的flutter webview插件; 这三种插件对比图(此图借鉴自网络) 这里详细介绍使用flutter_inappwebview5.3.2版本插件完成交互; 注意:flutter_inappwebview6.xx 版本flu

    2023年04月16日
    浏览(68)
  • Swift中与WebView的交互

    在Swift中,可以使用WKWebView来实现与WebView的交互。WKWebView是iOS 8及以后版本中新增的Web视图控件,它提供了一种现代化的方式来加载和显示Web内容,并且支持与JavaScript的交互。 以下是一些常见的与WebView的交互方式: 1.加载URL:可以使用WKWebView的load(_ request: URLRequest)方法来加

    2024年04月25日
    浏览(19)
  • 小程序webview组件,小程序和webview交互,小程序内联h5页面,小程序webview内网页实现微信支付

    小程序支持webview以后,我们开发的好多h5页面,就可以直接在小程序里使用了,比如我们开发的微信商城,文章详情页,商品详情页,就可以开发一套,多处使用了。我们今天来讲一讲。在小程序的webview里实现微信支付功能。因为微信不允许在小程序的webview里直接调起微信

    2024年02月09日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包