所以我正在创建一个java桌面程序。该程序转到在 jsp 上运行的身份验证网页。并使用 javafx webview(在 WebKit 上运行)来实现此目的
我的问题是如何检测网页是否正在使用 java webview 访问,如果没有断开或重定向客户端,以帮助降低垃圾邮件身份验证请求。
最佳答案
JavaFX WebView 允许您使用 user agent property 设置用户代理字符串。在网络引擎上。您可以使用它来将用户代理设置为您想要的任何内容。然后,当 WebView 客户端请求网页时,它将在用户代理 header 中提供该值。您的服务器代码可以查询用户代理 header ,然后根据结果采取它认为必要的任何操作。
来自this answer ,用户代理字符串的默认输出是:
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.44 (KHTML, like Gecko) JavaFX/8.0 Safari/537.44
正如 WebEngine 文档中所述,该值可能会在 JavaFX 版本和操作系统之间发生变化。最有可能的是,默认值始终包含文本 JavaFX
,因此您只需在服务器上检查用户代理字符串是否包含文本 JavaFX
。否则,如果您想非常确定,那么您可以对 JavaFX 客户端进行编码,以将用户代理字符串显式设置为您在服务器上检查的值。
要了解如何在 JSP 中检查用户代理,请参阅:
这表明您会编写如下内容:
<c:if test="${fn:contains(header['User-Agent'],'JavaFX')}"></c:if>
关于javascript - 检测Javafx webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45292054/