在Python应用程序中使用WebKitGtk +时,有没有办法从JS调用Python函数?

时间:2013-01-20 21:14:56

标签: javascript python webkit gtk

我来自Windows Forms世界,他们拥有这个ObjectForScripting属性,这使得将C#对象暴露给在WebViews中运行的JavaScript变得微不足道。我希望在Python中做类似的事情,而WebKitGtk +似乎是WebView的自然选择。但似乎没有一种简单的方法将Python对象绑定到JS中。有没有一种简单的方法可以让我失踪,或者可能是WebKitGtk +的另一种选择,它可以更好地做到这一点?感谢您的任何建议。

2 个答案:

答案 0 :(得分:4)

以下是一种解决方法:使用自定义方案拦截网址。

  • 处理resource-request-starting信号并检查网址是否以python:
  • 开头
  • 如果是,请以某种方式解析URL(eval?允许的函数字典?由您决定)并调用相应的函数。
  • 将请求的网址替换为data:text/plain,<result of function call>
  • 在JavaScript中,向python:my_function()发出Ajax请求。

这是非常有限的,但就我而言,可以使用Haskell绑定。

答案 1 :(得分:-1)

我最终选择使用PyQt,因为它强烈支持将本机对象暴露给JS。以下是一些很好的开始示例:

http://pysnippet.blogspot.com/2010/01/calling-python-from-javascript-in-pyqts.html http://pysnippet.blogspot.com/2010/01/more-fun-with-qwebkit.html