本想将基于pywebview的自定义js_api类,与窗体实例保存在一起时,总是产生这样的错误:
webview.errors.WebViewException: Main window failed to start
导致错误的代码如下图所示:
图1 将导致pywebview产生错误的代码
错误的现象可以描述为经历过一段时间的假死之后,然后报错webview.errors.WebViewException: Main window failed to start。而且提示pywebview.api.log并不是一个函数。
将Api类中的main_win去掉之后,就正常了。
图2 改写后的test.py
改写内容为第6、19、21行。运行时再无假死和错误爆出。
my.test网站的index.html的代码如下:
图3 测试网页的代码
运行test.py之后,控制台的结果显示为:
图4 控制台的结果显示
图5 客户端的显示
想来应该是pywebview在注入客户端代码时,由于Api类中存在pywebview的窗体对象,可能原因是,导致了处理上死循环,使得Api的方法不能注入到客户端窗体的pywebview对象中。