pangao1990 / PPX

基于Python和JavaScript,一键生成macOS、Windows和Linux平台客户端应用程序
https://blog.pangao.vip/docs-ppx/
GNU Affero General Public License v3.0
232 stars 39 forks source link

请问能实现事件发送吗 #13

Closed acornlive closed 1 year ago

acornlive commented 1 year ago

你好,请问能实现 事件注册,python发送事件js接收事件,或者js发送事件python接收时间,或者有什么思路没交流下

pangao1990 commented 1 year ago

你好,可以实现Python和JS之间的通信。通过 window.evaluate_js(code, callback=None) 和 pywebview.api.func_name 的方法。我在PPX里写了一个简单的示例,你可以参考一下。目前我也在写详细的文档,就在这几天就贴出来的。

# api.py
def getOwner(self):
        return getpass.getuser()

# main.py
from api import API
api = API()
window = webview.create_window(js_api=api)

# 在 python 中调用JS的py2js_demo函数
window.evaluate_js("py2js_demo()")
window['py2js_demo'] = (res) => {
    console.log('js', res)
  }

// 在JS中调用Python中的getOwner函数
window.pywebview.api.getOwner().then((res) => {
    console.log(res)
  })