我最近正在研究一个项目,该项目需要将npapi插件的二进制流传递给javascript,我尝试了以下方法:
使用NPN_InvokeDefault,我创建了一个字符串变体来存储二进制流,并将其调用到javascript中,但失败了。(我试图传递从XXX.txt文件读取的二进制流,它起作用了!)
我尝试使用NPN_NewStream,http://www.terraluna.org/dgp/cvsweb/PluginSDK/Documentation/pi3.htm#npnnewstream中列出的示例有效 ,但该图片已加载到新的浏览器选项卡中,我没有知道如何用JavaScript接收它。
以前有没有人遇到过类似的问题?还是npapi无法支持这种数据传输?
期待您的建议,非常感谢。
我正在开发 Firefox NPAPI 插件 + XPCOM 组件。我遇到了一个难题:给定从 Internet 下载的文件(例如 PDF 或 PNG),我如何启动默认的帮助应用程序以使用 C/C++ 在 Linux 上显示该文件?
目前我正在使用system函数调用来调用gnome-open命令并将文件路径传递给它。这适用于 GNOME 桌面,但它不适用于具有不同桌面环境(包括 KDE)的 Linux 平台。
所以我的问题是:有没有标准的统一方法来解决这个问题?有什么建议吗?任何帮助将不胜感激!
使用NPAPI或Firebreath为safari,firefox,chrome和IE开发插件需要哪些技能?Noob在这里请你轻松一点......
我一直在尝试为使用NPAPI插件的Chrome编写扩展程序.我正在使用mingw来编译它.我最初努力让Chrome加载插件,但现在我有一个不同的问题.
我设法让Chrome调用NP_GetEntryPoints和NP_Initialize,但在此之后它崩溃了.这是我到目前为止的代码......
main.cpp:
#include <iostream>
#include <cstdlib>
#include <Windows.h>
#include <npapi.h>
#include <npfunctions.h>
#define Exported extern "C" __declspec(dllexport)
NPNetscapeFuncs NPNFuncs;
Exported NPError NP_Initialize(NPNetscapeFuncs* pFuncs) {
if (pFuncs == NULL)
return NPERR_INVALID_FUNCTABLE_ERROR;
if (HIBYTE(pFuncs->version) > NP_VERSION_MAJOR)
return NPERR_INCOMPATIBLE_VERSION_ERROR;
if (pFuncs->size < sizeof(NPNetscapeFuncs))
return NPERR_INVALID_FUNCTABLE_ERROR;
// Save functions
NPNFuncs.size = pFuncs->size;
NPNFuncs.version = pFuncs->version;
NPNFuncs.geturlnotify = pFuncs->geturlnotify;
NPNFuncs.geturl = pFuncs->geturl;
NPNFuncs.posturlnotify = pFuncs->posturlnotify;
NPNFuncs.posturl = pFuncs->posturl;
NPNFuncs.requestread = pFuncs->requestread;
NPNFuncs.newstream = pFuncs->newstream;
NPNFuncs.write = pFuncs->write;
NPNFuncs.destroystream = pFuncs->destroystream;
NPNFuncs.status = pFuncs->status; …Run Code Online (Sandbox Code Playgroud) 有没有可以提供对本地文件系统的完全访问权限的免费NPAPI插件?
也许有一些随时可用的通用插件可以访问许多OS原生api功能?
我现在已经找了大约一个小时,我已经觉得有点傻了.我在哪里可以找到NPAPI的下载?我已经略微浏览了Gecko Plugin API Reference,但找不到下载链接.我还下载了Gecko SDK,它在下载后被称为xulrunner sdk(??),但Windows搜索告诉我npapi.h包中没有.
我在哪里可以下载NPAPI?
*编辑:
npapi.h包含在壁虎SDK.对不起.我已经读过如何获取DOM元素的句柄.这是一个非常有用的链接:http://forums.mozillazine.org/viewtopic.php?f = 27&t = 1521545
我现在的问题是,我可以处理我创建的Javascript var/object或任意函数吗?
在页面加载时,我有一个脚本执行这样的事情......
var controller = new Controller()
Run Code Online (Sandbox Code Playgroud)
要么
function callme(param1, param2) { ... }
Run Code Online (Sandbox Code Playgroud)
现在,从我的插件中,我希望能够从我的控制器对象中调用方法.或者,执行该函数callme.这是可能的,我将如何做到这一点?
谢谢,
克里斯
我正在为Mac开发一个NPAPI插件,它可以在Firefox和Safari中正常工作和注册,但不适用于Chrome.
该插件的Info.plist足以让Firefox和Safari承认它存在于自己的插件列表中.Chrome没有找到它.有任何想法吗?
来自Xcode的Info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleGetInfoString</key>
<string>XXXXXX</string>
<key>CFBundleIdentifier</key>
<string>com.yourcompany.${PRODUCT_NAME:XXXXXX}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>BRPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>WebPluginDescription</key>
<string>XXXXXXX</string>
<key>WebPluginMIMETypes</key>
<dict>
<key>application/x-XXXXXX-plugin</key>
<dict>
<key>WebPluginExtensions</key>
<array>
<string></string>
</array>
<key>WebPluginTypeDescription</key>
<string>XXXXXX</string>
</dict>
</dict>
<key>WebPluginName</key>
<string>XXXXXXXXXX</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)