BCB 中使用 CEF4 建立 WebSocket 通信!

本文介绍了如何在BCB中利用CEF4浏览器组件实现WebSocket通信。通过修改uCEFApplication.pas文件并注册JSExt类,实现了V8数据交互。详细步骤包括在CEFChromium中执行JavaScript代码来连接、发送WebSocket消息,并强调需先加载空白页再加载HTML以确保正确通信。这种方法避免了使用特定WebSocket组件和处理版本升级的问题。
摘要由CSDN通过智能技术生成

在 CEF4 浏览器组件中使用 WebSocket 是可行的, 但是, 如果涉及到数据处理必须要能够交互,

我改写 CEF4 浏览器组件的 uCEFApplication.pas 并完成了 v8 数据交互处理

修改组件代码如下, (注册JAVA类名为 'JSExt', 类方法名为 Notify ) 

uses
    // ...
    uCEFInterfaces, uCEFRenderProcessHandler, uCEFProcessMessage, 
    uCEFv8Context, uCEFv8Handler;

type
  TCefJavaScriptExtension = class
    class procedure Notify(const msgName, msgData : string);
  end;

class procedure TCefJavaScriptExtension.Notify(const msgName, msgData : string);
var
  msg: ICefProcessMessage;
begin
  msg := TCefProcessMessageRef.New(msgName);
  msg.ArgumentList.SetString(0, msgData);

  TCefv8ContextRef.Current.Browser.MainFrame.SendProcessMessage(PID_BROWSER, msg);
end;

procedure RenderProcessHandler_OnWebKitInitialized;
begin
  TCefRTTIExtension.Register('JSExt', TCefJavaScriptExtension);
end;

constructor TCefApplication.Create(const APath : String);
begin
  // ...
  FOnWebKitInitialized := RenderProcessH
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值