我正在用Java开发Apache Wicket WebApplication。在此应用程序中,我有使用用户代理检测用户设备的通用方法。但是,由于iOS 13更新,我的检查对于iPad不再起作用,因为用户代理返回iPad和PC的MacIntel或Intel Mac。我检查发现,此问题已在此处讨论:Link 1Link 2Link 3但是这些解决方案仅适用于JavaScript。我需要在Java(org.apache.wicket.protocol.http.WebSession)中进行处理。在WebSession的属性中,没有用于提取接触点数量的方法。任何人都可以帮助我获取接触点的数量,或者对解决此问题有其他想法。谢谢。
我当前的代码如下:
public static boolean isTablet(WebSession pWebSession) {
String userAgent = pWebSession.getClientInfo().getUserAgent();
if (userAgent != null && (userAgent.contains("iPad")
|| (userAgent.contains("Android") && !userAgent.contains("Mobile")))
|| (userAgent.contains("PlayBook"))) {//BlackBerry tablet
return true;
}
return false;
}
您可以尝试使用yauaa代替非常老的Wicket内部用户代理,因此在版本8中已弃用,并将在9中删除。