- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我计划创建需要与 Python 交互的基于 XULRunner 的应用程序。计划使用 PyXPCOM。目前,我正在自学如何使用 PyXPCOM 并浏览 Creating a Python XPCOM component 中的示例组件developmentmnet。但无法让它发挥作用。
我使用的是 Ubuntu 11.04,我的步骤是:
创建了一个应用程序目录,并将我的 XULRUnner 5.x 二进制发行版复制到其中的 xulrunner
子目录
按照 Building PyXPCOM 成功构建 PyXPCOM
按照 PyXPCOM 源 README.txt
文件中的安装说明进行操作,并将目录 obj/dist/bin
的全部内容复制到我的 中xulrunner
子目录,并在 xulrunner/chrome.manifest
文件中添加以下行:
manifest components/pyxpcom.manifest
创建了 nsIPySimple.idl
文件并将其放置在我的应用程序 components
子目录中:
#include "nsISupports.idl"
[scriptable, uuid(2b324e9d-a322-44a7-bd6e-0d8c83d94883)]
interface nsIPySimple : nsISupports {
attribute string yourName;
void write( );
void change(in string aValue);
};
通过在我的 components
子目录中执行以下命令创建 xpt 文件:
[xul-sdk-path]/xpidl -m typelib -w -v -I [xul-sdk-path]/idl/ nsIPySimple.idl
在我的 components
子目录中创建了 nsIPySimple.py
from xpcom import components, verbose
class PySimple: #PythonTestComponent
_com_interfaces_ = components.interfaces.nsIPySimple
_reg_clsid_ = "{607ebc50-b8ba-11e0-81d9-001cc4c794e3}"
_reg_contractid_ = "@mozilla.org/PySimple;1"
def __init__(self):
self.yourName = "a default name" # or mName ?
def __del__(self):
if verbose:
print "PySimple: __del__ method called - object is destructing"
def write(self):
print self.yourName
def change(self, newName):
self.yourName = newName
PYXPCOM_CLASSES = [
PySimple,
]
通过在我的 chrome.manifest
文件中添加以下行来注册 python 代码:
interfaces components/nsIPySimple.xpt
component {607ebc50-b8ba-11e0-81d9-001cc4c794e3} components/nsIPySimple.py
contract @mozilla.org/PySimple;1 {607ebc50-b8ba-11e0-81d9-001cc4c794e3}
创建了 Javascript 函数来调用 Python 方法:
function showMore() {
try {
testComp = Components.classes["@mozilla.org/PySimple;1"].name;
alert(testComp);
testComp = Components.classes["@mozilla.org/PySimple;1"].
createInstance(Components.interfaces.nsIPySimple);
testComp.write();
}
catch (anError) {
alert(anError);
}
}
但是 Javascript 代码抛出以下异常:
[Exception... "Component returned failure code: 0x80570015
(NS_ERROR_XPC_CI_RETURNED_FAILURE) [nsIJSCID.createInstance]"
nsresult: "0x80570015 (NS_ERROR_XPC_CI_RETURNED_FAILURE)"
location: "JS frame :: chrome://reader/content/main.js ::
showMore :: line 5" data: no]
知道发生了什么或者我做错了什么吗?
感谢您的帮助和澄清!
最佳答案
错误消息表明 createInstance()
调用导致错误。好消息:这意味着 createInstance()
之前的一切都成功了(PyXPCOM 正在工作并且组件已正确加载/注册)。 http://code.google.com/p/pythonext/source/browse/samples/pyshell/components/pyShell.py表明 _com_interfaces_
需要是一个列表,所以也许这就是这里的问题。如果未正确指定支持的接口(interface),则创建实例失败是有道理的。
关于python - PyXPCOM 组件未在 XULRunner 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853595/
我开发了一个在 Firefox 下运行良好的二进制扩展,但无法在 XULRunner/GeckoFX 中部署它。该扩展没有 UI,只是为我们的主应用程序(在 .NET 中)提供了一个 API。 我能找
我正在按照独立 XUL 应用程序的默认结构编写 XUL 应用程序 - 也就是说,我有以下文件: ./application.ini ./chrome ./chrome/chrome.manifest
我正在使用 Linux Mint,并且我已经下载了 XUL 1.8.0.4。将其提取到 /opt/ 目录,建立到/usr/bin/xulrunner 的符号链接(symbolic link),但我仍然
阅读后: Do not confuse the Gecko/XULRunner SDK with XULRunner itself. The Gecko SDK is a collection of
我有一个使用渲染引擎的应用程序,它可以在 D3D 和 OpenGL 之间切换(至少在 Windows 上!)我们还使用 XULRunner 来实现嵌入式 Web 浏览器功能。 XULRunner 似乎
我有一个应用程序,它通过构建一个框架应用程序文件夹结构来生成临时 XULRunner 应用程序,然后使用以下命令启动它: xulrunner -app /path/to/temporary/appli
我想知道我需要做什么来创建一个可执行 (.exe) 文件来运行我的 XUL 应用程序? 我正在尝试使用 Mozilla 的 XUL 格式创建应用程序。 最佳答案 以下是步骤: 使用 WinZip 压缩
是否有使用 XULRunner 将浏览器控件嵌入应用程序的示例? (对于 native win32 应用程序,最好使用 c 或 c++) 我尝试过 QT、wxWidgets、Awesomium、chr
我有一个基于 XULRunner 的应用程序崩溃了,原因我不明白。为了帮助确定问题,我想查看 XULRunner 生成的所有日志。为此: XULRunner 是否会产生任何类型的错误日志? 如果有,它
有没有一种简单的方法来创建跨平台可移植 Xulrunner 应用程序? 我所说的“可移植”是指 http://portableapps.com/ 上的人做,但除此之外,我还希望能够将我需要的任何平台运
在网络浏览器中运行时,我可以这样做来动态注入(inject)样式表: var link = document.createElement('link'), head = document.ge
我正在尝试使用 XULRunner 制作离线应用程序。我正在尝试整合 JSTree对于 TreeView 。它似乎没有调用外部js。该代码在普通的 html 文件中可以正常工作。知道为什么它不在 XU
我正在使用 SWT 3.7 创建 RCP 应用程序。 Windows 是我的操作系统,IE 被设置为默认的 SWT 浏览器。我想将默认浏览器从 IE 更改为 Mozilla。我读过几篇文章并了解到,通
我遇到的情况是,我每 x 分钟从 xulrunner 应用程序调用 mplayer,它总是获得焦点并位于其他窗口前面的顶部。但我需要它位于 xulrunner 后面,它具有透明框,其中视频应该可见。
Firefox - XULRunner = What? 详细信息... 提出这个问题的另一种方式是,“firefox 应用程序”由什么组成(除了代码的 XULRunner 部分)? 最佳答案 Fire
升级到最新版本 ABCPDF 10.0.1.0 时,我似乎无法弄清楚此错误消息。错误消息是否提供了任何线索?它会突然发生,重新启动应用程序池是立即修复它的唯一方法。 WebSupergoo.ABCpd
我需要使用我的 SWT 应用程序发布特定版本 (1.8.1.3) 的 XulRunner。我当前的计划是检测当前平台并将XulRunner下载到该平台的应用程序数据路径。这没问题,但是我应该将 Xul
这个问题此刻非常考验我们的头脑。 XULRunner https://developer.mozilla.org/en/XULRunnerTrixul 跨平台 GUI 工具包 http://www.t
有人有尝试在 XULRunner 应用程序中包含 3d 小部件的经验吗?我一直在尝试的一个方向是嵌入一个 Java3d 小程序,但是从主应用程序的 JS 控制该小程序似乎存在许多问题。另一种可能性是,
我将项目移至自定义 WebBrowser,并选择 XULRunner。我正在使用 XULRunner 33 和 GeckoFX 33。所以,我将它添加到项目中并对其进行初始化。 在我的程序中,我使用自
我是一名优秀的程序员,十分优秀!