当我在javafx webview应用程序中加载某些网址时出现此错误
app.filter('formatTimer', function () {
return function (input) {
function z(n) { return (n < 10 ? '0' : '') + n; }
var seconds = input % 60;
var minutes = Math.floor(input % 3600 / 60);
var hours = Math.floor(input / 3600);
return (z(hours) + ':' + z(minutes) + ':' + z(seconds));
};
该网站在Chrome,Firefox等网站上加载正常。看来这是webview的一个问题。什么是解决方法?
中断的网址为http://mp3skull.com
答案 0 :(得分:1)
这不是WebView的错,它是目标站点上的某种设置(正如James_D在评论中所建议的那样)。目标站点正在检查传入请求的用户代理,如果它未检测到已识别的用户代理,则使用奇怪的Amiga emulated guru meditation error进行响应。
要解决此问题,您可以将WebView的用户代理设置为伪装成另一个浏览器(例如Chrome)。我从useragentstring.com复制了一个用户代理,当我使用Chrome用户代理字符串时,目标网页在没有任何专家调解的情况下正常打开。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class Pirate extends Application {
public static final String CHROME_41_USER_AGENT =
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
@Override
public void start(final Stage stage) throws Exception {
WebView webView = new WebView();
webView.getEngine().setUserAgent(
CHROME_41_USER_AGENT
);
webView.getEngine().load("http://mp3skull.com");
stage.setScene(new Scene(webView));
stage.show();
}
public static void main(String[] args) throws Exception {
launch(args);
}
}