gpt4 book ai didi

java - javaFX 中的 WebView,不适用于 Whatsapp web

转载 作者:搜寻专家 更新时间:2023-10-31 19:59:32 26 4
gpt4 key购买 nike

我需要从我没有获得的 JavaFX 应用程序访问 WhatsApp Web。当页面打开时,我收到一条消息,要求我使用其他浏览器。我试图更改 UserAgent,但它不起作用。

enter image description here

代码:

WebEngine eng = webView.getEngine();
eng.load("https://web.whatsapp.com/");
eng.setJavaScriptEnabled(true);
eng.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36");

我该如何解决这个问题?

最佳答案

我无法从 JavaFX 访问 whatsapp,这似乎不是用户代理问题,而是在使用 FX 时缺少某些依赖项,或者 whatsapp 正在使用其他指标进行阻止,但找到了替代方案; Pandomium

它与 JavaFX 不兼容,但与 Swing 兼容,并且可以访问任何站点而无需考虑用户代理或任何依赖性问题,因为它是 JCEF实现,即 Chromium Framework for Java,本质上是嵌入式 Chrome for Java。

只需在您的依赖项中使用 Pandomium jar 执行以下操作即可;

public static void main(String[] args) {
PandomiumSettings settings = PandomiumSettings.getDefaultSettingsBuilder().build();
settings.getCefSettings().cache_path = "C:\\temp\\cache";
// setting this option is paramount otherwise no cache is kept, and sesions are lost

Pandomium pandomium = new Pandomium(settings);
pandomium.initialize();

PandomiumClient client = pandomium.createClient();
PandomiumBrowser browser = client.loadURL("https://web.whatsapp.com");

JFrame frame = new JFrame();
frame.getContentPane().add(browser.toAWTComponent(), BorderLayout.CENTER);
frame.setTitle("Whatsapp");
frame.setSize(1720, 840);
frame.setVisible(true);
}

关于java - javaFX 中的 WebView,不适用于 Whatsapp web,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51843273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com