在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的同學加QQ啊:316454904