vue3与cef3交互

cef版本:92.0.27+g274abcf+chromium-92.0.4515.159_windows64

node:v22.22.0

vue: "^3.5.26"

1、vue3组件调用C++方法:

C++中:

cpp 复制代码
RenderDelegate::OnWebKitInitialized()
{
	  CefRefPtr<CefV8Handler> handler = m_v8handler;
	  std::string app_code =
		  "var APP;"
		  "if (!APP)"
		  "    APP= {};"
		  "(function() {"

		  "    APP.call_c_p_p= function(param,callback) {"
		  "        native function call_c_p_p();"
		  "        return call_c_p_p(param,callback);"
		  "     };"

		  "})();";

	  CefRegisterExtension("v8/APP", app_code, handler);
}

Vue3组件中:

javascript 复制代码
const handleFunc = async () => {
        if (typeof (window.APP) == "undefined") {
    }
    else {
        var ret = window.APP.call_c_p_p("msg param", (result) => {
            alert("result:" + result);
        });
    }
    return
}

2、C++调用vue3:

C++代码:

cpp 复制代码
CefRefPtr<CefBrowser> browser = context->GetRootWindowManager()->GetActiveBrowser();
CString callparam;

callparam.Format(_T("call_vue('%s');"), _T("来自CEF3的调用"));

browser->GetMainFrame()->ExecuteJavaScript(callparam.GetBuffer(), browser->GetMainFrame()->GetURL(), 0);

Vue组件:

javascript 复制代码
onMounted(() => {
window.call_vue = (param) =>
{
	alert("receive msg from CEF3: " + param);
}
})

不管是vue调C++还是C++调vue,vue中都要通过window对象来访问。

相关推荐
Setsuna_F_Seiei5 小时前
前端的 AI 学习之路 01 之 Agent API 调用 - 和 Agent 的基础对话
前端·人工智能·ai编程
threerocks6 小时前
AI 原生软件开发生命周期手册 - 如何借助 AI,逐阶段改造软件开发生命周期
前端·javascript·后端
徐小夕6 小时前
3分钟从想法到Agent上线:我们开源了一款AI可视化工作流“IDE”
前端·算法·github
why技术8 小时前
eli5,我觉得这个全网在吹的技能,使用体验真的很一般啊。
前端·人工智能·后端
excel8 小时前
记录升级 nuxt3 到 nuxt4 记录
前端
剑胆琴心静水深流8 小时前
全栈之路6---web集成与呈现
前端·vue.js·spring boot·分布式·spring·前端框架·npm
前端snow9 小时前
ai agent -- Memory汇总
前端
ITresearchGuest9 小时前
AI 焦虑下,前端该何去何从
前端·人工智能
Codiggerworld10 小时前
Chrome DevTools 隐藏神技:这 5 个调试技巧你可能从来没用过
前端·chrome·chrome devtools
旋生万物10 小时前
【终极实战】用Python从零“生成“一个宇宙:螺旋干涉模型的代码实现
开发语言·前端·人工智能·react.js·php·wpf