在Python应用程序中使用WebKitGtk+时,是否有一种方法可以从JS调用Python函数?

Is there a way to call Python functions from JS, when using WebKitGtk+ in a Python app?

本文关键字:Python 方法 一种 JS 函数 调用 应用程序 WebKitGtk+ 是否      更新时间:2023-09-26

我来自Windows窗体世界,在那里他们有这个ObjectForScripting属性,使得它微不足道的暴露c#对象的JavaScript运行在你的WebViews。我希望在Python中做类似的事情,而WebKitGtk+似乎是WebView的自然选择。但是似乎没有一种简单的方法可以将Python对象绑定到JS中。是否有一个简单的方法,我错过了,或者可能是WebKitGtk+的替代方案,将更好地做到这一点?谢谢你的建议。

这是一个解决方法:使用自定义方案拦截url。

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

这是非常有限的,但工作,在我的情况下,与Haskell绑定

我最终选择了PyQt,因为它对将本机对象暴露给JS有强大的支持。下面是一些很好的例子:

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