本文基于VS2019 VC++,cef_binary_108.4.13
例如在一个CMyDialog类中,希望获取网页HTML,因为frame的GetSource(CefRefPtr<CefStringVisitor> visitor)虽然是在Browser主进程执行,不涉及与Render进程的交互,但也是异步的。GetSource只负责交代任务给visitor,然后继续执行后面的代码;而visitor执行获取HTML的任务,完成后回调visitor的visit方法。
明白这个机制后,那么,我们可以首先在CMyDialog类中创建响应visitor的visit回调的方法,代码示例:
void CMyDialog::StrVisitorRet(CefString& strRet)
{
//添加处理代码
}
接着创建自己的CefStringVisitor,代码示例:
//MyStringVisitor.h 文件
#include "include/cef_string_visitor.h"
class CMyDialog;
class CMyStringVisitor : public CefStringVisitor
{
public:
CMyStringVisitor() {}
void Visit(const CefString& string) override;
CMyDialog* m_pDlg;
IMPLEMENT_REFCOUNTING(CMyStringVisitor);
};
//MyStringVisit