foruok原创,如需转载请关注foruok的微信订阅号“程序视界”联系foruok。
在HTML中,可以通过embed或object标签来配置插件。使用embed类似下面这样:
使用object类似下面这样:
PPAPI插件实例化时,可以收到在embed或object中配置的参数。所有嵌在标签中的属性(比如id=”myplugin”)、param指定的参数,都会以name-value对的形式传递给PPP_Instance接口的DidCreate方法。该方法原型如下:
PP_Bool (*DidCreate)(PP_Instance instance,
uint32_t argc,
const char* argn[],
const char* argv[]);
其中,argc是CEF搜集的embed或object中的参数个数,argn数组是参数名字,argv数组是参数的值。代码中可以这样处理参数:
PP_Bool Instance_DidCreate(PP_Instance instance,
uint32_t argc,
const char* argn[],
const char* argv[])
{
...
char szLog[256] = { 0 };
sprintf_s(szLog, 256, "PPAPI Got %d params\r\n", argc);
OutputDebugStringA(szLog);
for (int i = 0; i < argc; i++)
{
sprintf_s(szLog, 256, "name=%s, value=%s\r\n", argn[i], argv[i]);
OutputDebugStringA(szLog);
}
...
}
针对前面的object标签示例,使用DebugView可能看到下面的输出:
Ok,能处理参数,插件就可以定制化了。
其他参考文章:
CEF Windows开发环境搭建
CEF加载PPAPI插件
VS2013编译最简单的PPAPI插件
理解PPAPI的设计
PPAPI插件与浏览器的交互过程
Windows下从源码编译CEF
编译PPAPI的media_stream_video示例
PPAPI插件的绘图与输入事件处理
在PPAPI插件中创建本地窗口
PPAPI插件与浏览器的通信
Windows下从源码编译Skia
在PPAPI插件中使用Skia绘图
加载DLL中的图片资源生成Skia中的SkBitmap对象
PPAPI+Skia实现的涂鸦板
PPAPI中使用Chromium的3D图形接口
PPAPI中使用OpenGL ES绘图
CEF中JS与C++交互
CEF中Browser进程与Render进程间通信
Chromium与CEF的多进程模型及相关参数
PPAPI与Browser间使用AsyncIPC通信