【问题标题】:Waiting for JavaScript to execute to continue Java code等待 JavaScript 执行以继续 Java 代码
【发布时间】:2015-11-13 11:12:34
【问题描述】:

我有一个阅读器应用程序,它使用 Web 视图显示带有分页的 html 文件,我很难在 Web 视图完成加载后立即计算页面数的 pageCount。到目前为止,我在 onPageFinished 函数中拥有的代码如下:

myWebView.loadUrl("javascript:window.HTMLOUT.calculatePageCount(document.getElementsByTagName('html')[0].scrollWidth);");
            if(myWebView.getDonePageCalc())
            {
                 //do some calculation    
            }

在我的 Web 视图类中,我实现了 calculatePageCount,并在其中将 donePageCalc 设置为 true。我需要的是让代码等到 web 视图完成执行 JavaScript 指令来计算页数。如果我这样做:

 while(!myWebView.getDonePageCalc())
 {System.out.println("wait");}

程序将在 while 循环内冻结。

有什么方法可以设置观察者或任何可以触发指令执行完成的事情?

【问题讨论】:

    标签: javascript java android webview pagination


    【解决方案1】:

    如果你知道excat的等待时间,你可以使用,

    try {
        Thread.sleep(1000); // In millisecond                
    } catch(InterruptedException ex) {
        Thread.currentThread().interrupt();
    }
    

    或者你可以试试,

    while(true){
       if(myWebView.getDonePageCalc()){
           //do your calculation
           break;
       }
    }
    

    【讨论】:

    • ّ我不知道确切的时间,但我会试试看。
    • 恐怕这两个建议都不起作用,在第一种情况下它等待设定的时间但没有计算页面,在第二种建议中,程序永远停留在 while 循环中。
    猜你喜欢
    • 2020-06-14
    • 2014-12-14
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2015-04-09
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多