WebView.postVisualStateCallback仅在第一次

时间:2018-06-08 15:53:15

标签: android webview

我在Android应用程序中有一个包含本机UI元素和WebView的活动。 WebView通常是隐藏的(Visibility.GONE),它在后台执行偶尔的工作""在它的JavaScript循环上。在特定按钮上单击,WebView变为可见,用户可以看到该网页。在随后的按钮单击中,将再次隐藏WebView。用户可以重复此过程。

当用户按下按钮以使WebView可见时,我添加了对WebView.postVisualStateCallback的调用。我只在VisualStateCallback.onComplete期间显示WebView。这很好用户第一次点击按钮,我可以看到WebView。但是,在用户关闭WebView并将其再次隐藏后,我无法重复此过程。随后对WebView.postVisualStateCallback 永远的调用会导致另一次调用VisualStateCallback.onComplete

mWebView.postVisualStateCallback(++mWebViewVisualStateCallback, new WebView.VisualStateCallback() {
    @Override
    public void onComplete(long requestId) {
        if (requestId == mWebViewVisualStateCallback) {
            mWebView.setVisibility(View.VISIBLE);
        }
    }
});

导航到WebView中的新网页。该网页本质上是一个长寿命的单页应用程序。当WebView处于后台时,DOM可能会在WebView中发生变化,这就是我尝试随后调用WebView.postVisualStateCallback的原因。我正在使用Oreo 8.1 / API 27在模拟器和Pixel 2上进行测试。

是否可以在同一主框架上多次使用WebView.postVisualStateCallback?为什么WebView.postVisualStateCallback只能使用一次?

0 个答案:

没有答案