在HTML中给PPAPI插件配置参数

Posted foruok

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在HTML中给PPAPI插件配置参数相关的知识,希望对你有一定的参考价值。

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,能处理参数,插件就可以定制化了。


其他参考文章:

以上是关于在HTML中给PPAPI插件配置参数的主要内容,如果未能解决你的问题,请参考以下文章

PPAPI插件的动态创建改动删除

在PPAPI插件中创建本地窗口

PPAPI中使用OpenGL ES绘图

PPAPI+Skia实现的涂鸦板

PPAPI插件与浏览器的通信

ppapi,npapi