标签:
foruok原创,如需转载请关注foruok的微信订阅号“程序视界”联系foruok。
在HTML中,可以通过embed或object标签来配置插件。使用embed类似下面这样:
<embed id="myplugin" type="application/x-ppapi-myplugin" width="1200px" height="520px">
使用object类似下面这样:
<object id="myplugin" type="application/x-ppapi-myplugin" width="1200px" height="520px" custom="i am custom">
<param name="tang" value="desktop" />
</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,能处理参数,插件就可以定制化了。
其他参考文章:
标签:
原文地址:http://blog.csdn.net/foruok/article/details/50638168