2023-02-16 329
我目前正在使用GluonHQ(Javafxports)开发一个应用程序,在该应用程序中,我正在使用WebView来加载一些Internet页面.我注意到,当我在桌面上使用以下代码
时
webEngine.getLoadWorker().progressProperty().addListener((a,b,progress) -> System.out.println(": " +progress.doubleValue()));
它将加载从0.0打印到1.0.
Loading Page: 0.0
Loading Page: 0.22
Loading Page: 0.38
Loading Page: 0.81
Loading Page: 1.0
在iOS上,它总是返回0.0和1.0,而不是任何中间值.
Loading Page: 0.0
Loading Page: 1.0
有什么方法来处理此操作?
使用Javafxports,在移动设备(Android和iOS)上,WebView控件不是Javafx内置控件,而是本机控制.例如,在iOS上,使用UIWebView控制.顺便说一句,同样适用于TextField和TextArea控制.
保持与桌面中的API,javafx” webview” control ,但它只是一个立面,一个具有相同属性的节点,但没有webkit.一切都传递到本地控制.
,虽然本地和Java层之间都有两种方式,而不是发送 everything ,因此本机控制属性与Javafx属性之间没有1:1的关系桌面实现.
If you check the 本机实现在iOS的Objective-C中,您可以找到与加载状态有关的一些方法,而本机回调:
- (void)webViewDidStartLoad:(UIWebView *)webView {
...
(*env)->CallVoidMethod(env, jObject, jmidLoadStarted);
}
- (void)webViewDidFinishLoad:(UIWebView *)wv {
...
(*env)->CallVoidMethod(env, jObject, jmidLoadFinished, jUrl, jInner);
}
that go to the JavaFX https://bitbucket.org/javafxports/8u-dev-rt/src/7bb974e4073cae570e6106deb4afff9b56d96dd5/modules/web/src/ios/java/javafx/scene/web/WebView .
// native callbacks
private void notifyLoadStarted() {
engine.notifyLoadStarted();
}
private void notifyLoadFinished(String loc, String content) {
engine.notifyLoadFinished(loc, content);
}
您可以看到,没有与加载进度有关的方法,因此这就是您不会获得任何中间值的原因.
以上所述是小编给大家介绍的JavaFX WebView进度始终从0.0到1.0。(无中间值),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/33844.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态