CEF3中js調用delphi內部方法


2015-01-20修改:以下方法不適合delphi7,在CEF3源碼中限制了delphi_14 up,對於被我誤導的朋友說聲抱歉

在CEF1中JS調用delphi的方法已經貼過:http://www.cnblogs.com/Delphi-Farmer/archive/2013/05/17/3083794.html

但是CEF3升級了,貌似內核都不一樣了,CEF1中的方法失效了,查閱了一些資料,得出如下結果:

delphi代碼:

interface

uses
  ceflib;//其它

type
//這里建議用class  不建議用class(TThread)  不然有些地方要報錯
TMyExtension = class(TThread) // or just class, (extension code execute in thread)
  public
  class function _geta:string;
end;

TCustomRenderProcessHandler = class(TCefRenderProcessHandlerOwn)
protected
    procedure OnWebKitInitialized; override;
end;

implementation

class function TMyExtension._geta: string;
begin
  Result:='調用成功';
end;

procedure TCustomRenderProcessHandler.OnWebKitInitialized;
begin
  TCefRTTIExtension.Register('JS_DELPHI', TMyExtension);
end;

initialization
  CefRenderProcessHandler := TCustomRenderProcessHandler.Create;

end.

JS調用實例:

<script> alert( JS_DELPHI._geta() ); <script>

這種方式調用時要寫注冊的類名:JS_DELPHI

在CEF1中是不需要寫類名的,這點要注意

有研究DECF3的同學加群啊:DCEF共同進步 426277694


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM