我的NPAPI插件已安装,但我无法从中调用方法

时间:2011-06-27 07:25:00

标签: google-chrome google-chrome-extension npapi

我在Google Chrome扩展程序中嵌入了一个简单的NPAPI插件。它安装在Google Chrome上(它显示在about:plugins中)但背景html页面显示“缺少插件”以及调用方法时(例如插件) .foo),它显示一条消息“插件没有方法foo”

我的调用调用看起来像这样

static bool
invoke(NPObject* obj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result) {
    logmsg("invoke");
    int error = 1;
    char *name = npnfuncs->utf8fromidentifier(methodName);
    if(name) {
        if(!strcmp(name, "foo")) {
                    ...
                 ....

            return invokeDefault(obj, args, argCount, result);
        } 
    }
    // aim exception handling
    npnfuncs->setexception(obj, "exception during invocation");
    return false;
}

https://developer.mozilla.org/en/XEmbed_Extension_for_Mozilla_Plugins

根据这个文档,我修改了我的NP_GetValue函数,插件没有NPP_SetWindow,因为我不想让它成为一个带窗口的插件。

我在某个地方出错了吗? 同时指出可能存在错误范围的任何其他地方。

谢谢 此致

1 个答案:

答案 0 :(得分:0)

“Missing plugin”可以显示插件是否未加载(例如,您在对象标签中输入了错误的MIME类型),或者插件是否在初始化期间崩溃。

您是否尝试使用--plugin-startup-dialog运行以查看您的插件是否已实际实例化,如果是,请调试它?