Jcef 例子4_JCEF中js与java交互、js与java相互调用

createh53个月前 (02-01)技术教程18

调用jcef核心代码

CefMessageRouter msgRouter = CefMessageRouter.create(new CefMessageRouter.CefMessageRouterConfig(
"csh_Query",// 定义方法
"csh_QueryCancel"// 定义取消方法
));
// 向消息路由器添加一个处理器,第二个参数为true表示这个处理器是主处理器。
msgRouter.addHandler(new CshJcefJsBridgeHandlerDemo(), true);
// 将配置好的消息路由器添加到CEF客户端中,以便它可以开始处理来自JavaScript的调用。
client_.addMessageRouter(msgRouter);

CshJcefJsBridgeHandlerDemo

收到js调用,直接返回反转后的文字,并调用js弹出提示信息:

package com.virhuiai.JBCefBrowser.handler;

import org.cef.browser.CefBrowser;
import org.cef.browser.CefFrame;
import org.cef.callback.CefQueryCallback;
import org.cef.handler.CefMessageRouterHandlerAdapter;

public class CshJcefJsBridgeHandlerDemo extends CefMessageRouterHandlerAdapter {
    @Override
    public boolean onQuery(CefBrowser browser, CefFrame frame, long query_id, String request,
                           boolean persistent, CefQueryCallback callback) {

        // 返回影响成功的数据
        callback.success(new StringBuilder(request).reverse().toString());
        browser.executeJavaScript("alert('成功接收到js的调用')",null,1);// 调用js中定义的方法

        return true;

    }
}

html文件

核心就是调用:

window.csh_Query({...});// 方法名是在上面jcef中设置的,接着用jcef打开html文件。

启动后,根据url参数取得方法名,调用用之




    
    测试打开静态文件


    

测试sendMessage2Java

示例如图:


相关文章

java 整合jsch使用 远程交互服务器

#头条创作挑战赛#背景java 通过jsch 远程执行命令 jsch 主要是类似Xshell 只不过是代码级别使用,而 Xshell使用界面化jsch可以执行任何shell 脚本,但是弊端是执行一次必...

Arduino通过串口透传ESP 13板与java程序交互

ESP 13 --- 是一个无线板子,配置通过热点通信Arduino通过串口透传ESP13板与java程序交互这个程序最基本的想法是用java把Arduino抽象出来,忙活了好几天,虽然没有达到最后的...

Java-IO流(Javaio流最快多少mb每秒上传)

目录1、流的概念和作用1.2、Java IO所采用的模型1.3、IO流的分类1.4、IO流特性1.5、IO流常用到的五类一接口1.6、Java IO流对象1.6.1、输入字节流InputStream1...

反向 Debug 了解一下?揭秘 Java DEBUG 的基本原理

作者:保险业务部 蒋信点赞再看,养成习惯Debug 的时候,都遇到过手速太快,直接跳过了自己想调试的方法、代码的时候吧……一旦跳过,可能就得重新执行一遍,准备数据、重新启动可能几分钟就过去了。好在ID...

axelor java快速开发平台(java 开源 快速开发平台)

axelor是由法国公司Axelor (https://www.axelor.com)推出的开源java快速开发平台和中型erp应用系统,基于标准的三层开发架构,orm使用jpa,权限验证使用shir...