Javafx 开发,用 webview 做界面可行吗? - 知乎 - 前人踩过的坑001

先告诉你答案,不建议。

最近用Java+SWT+Browser写了一个RCP客户端玩,先说为什么选择浏览器,因为有很多功能,都是需要通过浏览器取数据的,现在太多网站用cloudflare做防护,所以我原来用JSoup搞定的东西,都被拦住了,虽然可以短期内破解cloudflare,但它也会变,我实在没精力和它做攻防,而且有太多的网站是通过动态执行JS来生成客户端界面的,所以使用浏览器访问效果是最好的。

然后就各种梦魇了,一开始是打算用C#写的,试用VS2022测试版,上来就是4G内存占用,吃不消,而且可以用的浏览器控件WebView2还不成熟,所以试了两天,放弃了,等正式版本。

然后考虑用Qt,毕竟这货自带WebEngine,结果发现新出的Qt6还一堆问题,试了两天,等它再成熟一点吧。

最后还是回到了Java,然后又是各种坑,先是试了JavaFx的WebView,那就是一个残废品,太多的Html的功能支持不了。没办法,换成Chrome,用了Selenium操作这货,结果这家伙多进程运行时,无法共享Cookie(虽然通过各种绕,可以勉强搞定,但太麻烦了,也不稳定,而且太占内存了,还有POST等请求简单是折腾)。最后,勉强用了SWT带的Browser,虽然也有问题(比如我在Chrome下正常运行的代码,经常运行不了,还有调用浏览器访问网页时,需要在UI和非UI线程来回切换,简直是受罪),但最终能用了。

所以现在,用Java+Browser,除非你是非常有经验的,而且界面非常简单,否则大概率是搞不定的。如果一定要用,那么你可以考虑 Selenium+Chrome。


原网址: 访问
创建于: 2023-08-23 15:10:22
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论