2017-11-10 101 views
0

我正在创建一个托管在云服务(heroku)上的应用程序,该应用程序每30分钟不活动一次。该应用程序显示页面加载时的加载活动。由于服务器每30分钟没有请求就会休眠,响应时间可能在2到12秒之间变化。我试图找到一种方法来知道是否满载CSS和JS的内容。 onPageFinished事件不适用于我,大多数时候我都会看到一个空白页面。Webview Loading - 内容完成加载检查

public void load(){ 
    webView = (WebView) findViewById(R.id.web); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    webView.loadUrl(serverURL); 
    webView.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return false; 
     } 
     public void onPageFinished(WebView view, String url) { 
      LoadingActivity la = new LoadingActivity(); 
      if(la.isNetworkAvailable(MainActivity.this)) 
       LoadingActivity.current.finish(); 
      /* This event is called before all content loaded */ 
     } 
    }); 
    webView.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      return (event.getAction() == MotionEvent.ACTION_MOVE); 
     } 
    }); 
} 

回答

0

你可以尝试设置WebChrome客户端web视图,它具有负载百分比时,U可以试着听听那一个。

+0

如何?请添加代码以便了解。 –

+0

WebView.setWebChromeClient(新WebChromeClient(){ @Override 公共无效onProgressChanged(web视图视图,整数newProgress) { super.onProgressChanged(视图,newProgress);} }); –

+0

我仍然有一个空白页面几秒钟。我检查了newProgress == 100。 –

0

我发现最简单的事情就是从javascript文档就绪函数中调用java。