【问题标题】:JavaFx Webview goes to mobile site -(using jdk 7)JavaFx Webview 转到移动站点-(使用 jdk 7)
【发布时间】:2015-04-11 18:29:22
【问题描述】:

我正在尝试创建一个包含嵌入式浏览器的 JavaFX 桌面应用程序。

webEngine.load("http://sampleurl");

此语句会为某些网站加载移动网站,而为另一些网站加载桌面网站。 这是因为 JavaFX 还是各自网站的实现?

而且视图与 IE 完全相同。是否可以将其更改为chrome或mozilla? 我正在使用 jdk 7。

【问题讨论】:

  • “视图与 IE 完全相同”是什么意思。您是否尝试过在 JVM 中设置不同的用户代理?我只是建议,因为我没有用WebView 尝试过。
  • 例如。我尝试使用 webView 打开 google.com。我在 webView 的页面源中看到的 html 标签与 IE 8 浏览器中的标签完全相同,这与 Chrome 不同。外观和感觉和 IE8 一样,又和 chrome 不同。

标签: java webview javafx java-7 javafx-webengine


【解决方案1】:

根据对此question 的回答的评论。您应该可以使用 webEngine.setUserAgent(USER_AGENT_STRING) 为您的 Weview 设置用户代理。
不过似乎需要JDK8。实际上,JavaFX 2.2 javadoc 不包含它,但 JavaFX 8 one 包含。

您可以使用如下用户代理字符串伪造 Windows Chrome 浏览器之类的东西:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36

如果你真的需要使用JDK7,你可能会卡在这里。设置 JVM 的用户代理可能就足够了,但它可能会使用内部用户代理。

【讨论】:

  • 好吧,我现在坚持使用 JDK7,因为 JDK8 的 JBOSS 尚未推出。不过感谢您的帮助。
  • @wib 您如何在 Java EE 应用服务器上使用桌面技术 JavaFX?在我看来,这是两个完全不同的用例。
  • 抱歉给您带来了困惑。我正在使用 javafx 启动嵌入式浏览器,该浏览器又被重定向到 Web 应用程序(也是由我创建的)
  • 但是javafx项目不应该与服务器代码分开吗?这样,您还可以将 jdk8 用于 javafx8,将 jdk7 用于您的 java ee 项目。
  • 同意。这将允许我设置用户代理,但我能在服务器上的 jdk7 中检测到用户代理吗?
猜你喜欢
  • 2013-12-02
  • 2012-04-23
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
相关资源
最近更新 更多