当前位置: 首页 > news >正文

Miniblink 入门

miniblink官网:入门之前强烈建议将Miniblink介绍仔细看一遍。

MB内核组件标准版接口文档:这里列举了所有的api以及简单的说明,但是本人建议还是看wke.h更方便,里面都是宏实现的,直接搜相关函数即可。

mb demo下载和参考:里面有说明文档,初步可以看看文档和运行了解一下。

miniblink概括

  1. miniblink是单进程程序与cef多进程相比简单很多。
  2. mini 包很小,方便集成
  3. 为了使用devTool,应该将mb demo目录下的front_end拷贝到工程一份
  4. 为了使用插件,应该将mb demo目录下的plugins拷贝到工程一份

js 调用C++函数并返回值

  1. 遵循WKE_CALL_TYPE 调用方式
  2. 遵循函数原型 jsValue WKE_CALL_TYPE xxxFun(jsExecState es, void* param)
//函数标准必须遵守WKE_CALL_TYPE 调用方式
jsValue WKE_CALL_TYPE OnMsg(jsExecState es, void* param)
{//获取参数个数jsArgCountif (0 == jsArgCount(es))return jsUndefined();//获取约定的参数,例如获取第一个参数,并假设参数为string,如果不是string则返回jsValue arg0 = jsArg(es, 0);//jsType type = jsArgType(es, 0);//if (JSTYPE_STRING != type) return jsUndefined();if (!jsIsString(arg0))return jsUndefined();path = jsToTempString(es, arg0);//同理获取更多参数//返回约定返回值 or Undefined//return jsStringW(L"OK");return jsInt();
}
  1. js绑定C++函数
#param1:js中调用的函数名称
#param2:c++中实现的的函数
#param3:自定义参数,对应OnMsg中的void* param
#param4:约定onMsg中需要输入的参数个数,可多但是不能少#该函数是全局的,绑定之后所有webview的js都可以调用eMsg,包括新打开的webview
wkeJsBindFunction("eMsg", &onMsg, nullptr, 5);
  1. js中调用绑定函数
<button onclick="eMsg('add')">js Call C++ function</button>

c++ 调用js函数并获取返回值

  1. js中声明函数,eg:js_add
function js_add(v1,v2){return v1 + v2;}
  1. C++通过jsCallGlobal调用js_add
int callJSAdd(wkeWebView webview)
{jsExecState es = wkeGlobalExec(webview);jsValue f = jsGetGlobal(es, "js_add");if (jsIsFunction(f)){return -1;}jsValue jVal[2];jVal[0] = jsInt(1);jVal[1] = jsInt(2);jsValue callRet = jsCallGlobal(es, f, jVal, 2);return jsToInt(es, callRet);
}

显示DevTool

#param1:wkeWebView 实例
#param2:调试器的路径,即front_end/inspector.htmlwkeShowDevtools(m_wkWebView, szPath, 0, 0);
void CMbWebView::ShowDevTool()
{wchar_t szPath[MAX_PATH] = _T("");GetModuleFileNameW(NULL, szPath, MAX_PATH);PathRemoveFileSpecW(szPath);PathAppendW(szPath, L"front_end");PathAppendW(szPath, L"inspector.html");if (_waccess(szPath, 00) != 0){wchar_t szBuf[1024] = L"";_snwprintf_s<1024>(szBuf, 1024, L"调试工具[%s]不存在", szPath);MessageBoxW(GetHwnd(), szBuf, L"错误提示", MB_OK);}else{wkeShowDevtools(m_wkWebView, szPath, 0, 0);}
}

其他的更多功能直接参考官方的mb demo

相关文章:

Miniblink 入门

miniblink官网&#xff1a;入门之前强烈建议将Miniblink介绍仔细看一遍。 MB内核组件标准版接口文档&#xff1a;这里列举了所有的api以及简单的说明&#xff0c;但是本人建议还是看wke.h更方便&#xff0c;里面都是宏实现的&#xff0c;直接搜相关函数即可。 mb demo下载和参…...

[python入门㊷] - python存储数据

目录 ❤ json.dump()存储数据 ❤ json.laod()读取数据 ❤ 保存和读取用户生成的数据 ❤ 重构 JSON(JavaScript Object Notation)格式最初是为JavaScript开发的&#xff0c;但随后成了一种常见格式&#xff0c;被包括Python在内的众多语言采用 ❤ json.dump()存储数据…...

Little Fighter:旺角——NFT 系列来袭!

《小朋友齐打交 2 (LF2) 》是一款流行的格斗游戏&#xff0c;由 Marti Wong 和 Starsky Wong 于 1999 年创作。这是一款非常容易上瘾的游戏&#xff0c;具有多种游戏模式、横向卷轴格斗系统以及 24 个具有复杂动作和连击的不同角色。这款游戏在世界范围内非常受欢迎&#xff0c…...

基础篇:01-微服务概述

1.单体应用与微服务架构区别 如上图左侧为单体应用架构。在传统单体应用中&#xff0c;所有功能模块都在一个工程中编码、部署&#xff0c;即使是集群部署&#xff0c;也只是单体应用的水平复制。 如上图右侧为微服务架构。在微服务架构的项目中&#xff0c;每个应用会按照领域…...

TC358775XBG替代方案|完美替代 TC358775XBG替代方案|低BOM成本DSI转LVDS方案CS5518

TC358775XBG替代方案|完美替代 TC358775XBG替代方案|低BOM成本DSI转LVDS方案CS5518 TC358775XBG芯片的主要功能是DSI到LVDS桥&#xff0c;通过DSI链路实现视频流输出&#xff0c;以驱动LVDS兼容的显示面板。该芯片支持单链路LVDS高达1366768 24位像素分辨率&#xff0c;双链路L…...

Android开发

前言&#xff1a;因为这学期选了手机APP开发这门课&#xff0c;所以还是写个博客记录一下学习过程&#xff0c;包括安卓开发和ios开发。用到的资料包括课程PPT&#xff0c;和我在网上找的一些视频和资料。 1.Andriod入门 XML&#xff1a;描绘应用界面 &#xff08;决定APP长什…...

virtualbox虚拟机导入到vmware esxi虚拟机

virtualbox导出的ova文件转换为ovf文件导入到vmware esxi虚拟机 1、下载安装程序 链接&#xff1a;https://pan.baidu.com/s/1pRP8MQswDSDecMB5eJGNYA?pwdmv2q 提取码&#xff1a;mv2q 双击VMware-ovftool-3.0.1-801290-win.x86_64.msi默认安装 2、在cmd中进入到Vware OVF…...

如何使用命名空间管理C++代码

在编写 C 代码时&#xff0c;管理代码组织和消除名称冲突是一个重要问题。 为了解决这个问题&#xff0c;C 提供了一种叫做命名空间的机制。命名空间可以将代码组织在一起&#xff0c;并防止不同模块间的名称冲突。 定义命名空间 首先&#xff0c;你需要在代码中声明命名空间…...

海思3559:BT656调试笔记

前言 海思3559a的sdk例子是没有提供BT1120和BT656视频接入的&#xff0c;但实际上硬件是可以支持接入的。不过前提是只支持逐行方式输入&#xff0c;不支持隔行视频&#xff0c;如果想输入PAL制式的隔行视频&#xff0c;请先用芯片转成逐行再接入。不知道是官方手册有意无意的忽…...

reactor之hooks

Hooks 是一个工具类&#xff0c;它提供了一些方法&#xff0c;用来在 Reactor 的各个阶段添加回调函数&#xff0c;进行全局性的操作。总体来说分为三类&#xff1a; 本部分算是reactor中比较高级的部分&#xff0c;建议在开始上手用reactor做项目前&#xff0c;大概知道有这么…...

单片AR眼镜Monocle揭秘:基于反射棱镜,重15g续航1小时

提问&#xff1a;一个戴近视眼镜的人&#xff0c;会愿意再同时戴一副AR眼镜吗&#xff1f;这个问题对于VR来说并不难&#xff0c;通常VR头显为镜框留出了空间&#xff08;一些Pancake VR自带屈光调节机制&#xff09;&#xff0c;因此二者并不冲突。然而AR眼镜体积更紧凑&#…...

计算机视觉框架OpenMMLab开源学习(五):目标检测实战

✨写在前面&#xff1a;强烈推荐给大家一个优秀的人工智能学习网站&#xff0c;内容包括人工智能基础、机器学习、深度学习神经网络等&#xff0c;详细介绍各部分概念及实战教程&#xff0c;通俗易懂&#xff0c;非常适合人工智能领域初学者及研究者学习。➡️点击跳转到网站。…...

SpringIOC推导IOC初步

了解准备 什么是Spring&#xff1f; Spring是一款轻量级的控制反转&#xff08;IOC&#xff09;和面向切面编程&#xff08;AOP&#xff09;的非入侵式开源框架 2002年Spring的前身interface21发布&#xff0c;随后在2004年3月24日正式更名发布Spring1.0版本Spring Frameword缔…...

Linux(centOS7)虚拟机中配置 vim

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…...

消息中间件-RocketMQ入门 消息发送的三种方式

消息中间件-RocketMQ入门 消息发送的三种方式消息中间件简介应用场景常用消息中间件RocketMQ核心概念入门案例-生产者和消费者代码逻辑消息发送的三种方式同步发送异步发送一次性消息消息中间件简介 应用场景 假设现在有订单微服务和积分微服务,正常请求流程之后是不是一个订…...

【FLASH存储器系列十九】固态硬盘掉电后如何恢复掉电前状态?

掉电分两种&#xff0c;一种是正常掉电&#xff0c;另一种是异常掉电。不管是哪种原因导致的掉电&#xff0c;我们都希望&#xff0c;重新上电后&#xff0c;SSD都需要能从掉电中恢复过来&#xff0c;继续正常工作。正常掉电恢复&#xff0c;这个好理解&#xff0c;主机通知SSD…...

Java知识点细节简易汇总——(7)面向对象编程(高级部分)

一、类变量、静态变量static static访问方式&#xff1a; public class VisitStatic {public static void main(String[] args) {//方法一://类名.类变量名//说明&#xff1a;类变量是随着类的加载而创建&#xff0c;所以即使没有创建对象实例也可以访问System.out.println(A.…...

阻塞式队列-生产者消费者模型

1.阻塞队列是什么 阻塞队列是一种特殊的队列. 也遵守 "先进先出" 的原则. 阻塞队列能是一种线程安全的数据结构, 并且具有以下特性: 当队列满的时候, 继续入队列就会阻塞, 直到有其他线程从队列中取走元素.当队列空的时候, 继续出队列也会阻塞, 直到有其他线程往队…...

引导滤波code

文章目录1. 原理概述2. 实验环节2.1 验证与opencv 库函数的结果一致2.2 与 双边滤波比较2.3 引导滤波应用&#xff0c;fathering2.3 引导滤波应用&#xff0c;图像增强2.4 灰度图引导&#xff0c;和各自通道引导的效果差异2.5 不同参数设置影响3. 参考引导滤波1. 原理概述 引导…...

Leetcode.2353 设计食物评分系统

题目链接 Leetcode.2353 设计食物评分系统 Rating &#xff1a; 1782 题目描述 设计一个支持下述操作的食物评分系统&#xff1a; 修改 系统中列出的某种食物的评分。 返回系统中某一类烹饪方式下评分最高的食物。 实现 FoodRatings类&#xff1a; FoodRatings(String[] foo…...

ant-design 1.x版本表格头部拖拽、可拖拽列实现

表格列宽拖拽调整 — 问题总结 版本 “vue”: “2.6.11”,“vue-draggable-resizable”: “^2.3.0”,"ant-design “&#xff1a;”1.7.0“ 问题 1&#xff1a;thDom 为 null 导致 getBoundingClientRect 报错 现象&#xff1a; TypeError: Cannot read properties of nul…...

多智能体 执行-辩论-校验 闭环架构

文章目录一、核心本质二、三大智能体权责划分1. 执行Agent&#xff08;A/B/C&#xff09;2. 辩论Agent3. 校验Agent&#xff08;终审裁判&#xff09;三、闭环流转逻辑四、关键设计规则五、TaskList 任务标准字段一、核心本质 整体架构本质&#xff1a;执行 → 辩论 → 校验 三…...

泰米尔文TTS项目上线倒计时:ElevenLabs API v2.4.1强制启用新语音编码协议,旧集成方案将于2024年9月30日失效

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;泰米尔文TTS项目上线倒计时&#xff1a;ElevenLabs API v2.4.1强制启用新语音编码协议&#xff0c;旧集成方案将于2024年9月30日失效 ElevenLabs 已于 2024 年 7 月 15 日正式发布 API v2.4.1&#xff…...

ADAU1701(含A2B)的开发详解五:SigmaStudio实战技巧与模块高效应用

1. SigmaStudio模块查找的终极技巧 第一次打开SigmaStudio时&#xff0c;面对左侧密密麻麻的模块列表&#xff0c;我完全懵了。就像走进一个巨大的图书馆却找不到分类标签&#xff0c;ADI把200多个算法模块分散在30多个分类里&#xff0c;光Volume Controls下面就有12种音量调节…...

京东自动评价工具:Python智能购物助手终极指南

京东自动评价工具&#xff1a;Python智能购物助手终极指南 【免费下载链接】jd_AutoComment 自动评价,仅供交流学习之用 项目地址: https://gitcode.com/gh_mirrors/jd/jd_AutoComment 想要轻松完成京东购物后的评价任务吗&#xff1f;jd_AutoComment 是一款基于Python开…...

使用VSCode无法登录Codex解决方法

登录时提示&#xff1a;Token exchange failed: token endpoint returned status 403 Forbidden: Country, region, or territory not supported确保魔法工具的连接模式是支持应用的&#xff0c;有的是只支持网站&#xff0c;切换成支持应用模式即可解决此问题。...

观察Taotoken用量看板如何精细化管控API调用成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Taotoken用量看板如何精细化管控API调用成本 对于依赖大模型API进行开发的项目团队而言&#xff0c;成本控制与预算管理是项目…...

G-Helper终极指南:3步快速解决华硕笔记本色彩失真问题

G-Helper终极指南&#xff1a;3步快速解决华硕笔记本色彩失真问题 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Ex…...

GitHub代码仓库导航:开发者如何高效构建与使用技术资源地图

1. 项目概述&#xff1a;一个面向开发者的代码仓库导航 最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的仓库&#xff0c;叫 yeabnoah/vx_code 。乍一看这个标题&#xff0c;可能会有点摸不着头脑&#xff0c; vx_code 是什么&#xff1f;是某种新的编程语言&#xf…...

从电赛A题到实战:手把手教你搞定单相交流电子负载的SPWM控制与功率因数调节

从电赛A题到实战&#xff1a;手把手教你搞定单相交流电子负载的SPWM控制与功率因数调节 在电子设计竞赛中&#xff0c;单相交流电子负载的设计一直是极具挑战性的题目。它不仅考验参赛者对电力电子技术的理解&#xff0c;更要求具备将理论转化为实际电路的能力。本文将从硬件选…...