2017-11-10 34 views
0

30分ごとに休止するクラウドサービス(heroku)でホストされているアプリを作成しています。ページの読み込み時に読み込みアクティビティが表示されます。サーバーは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

WebViewでWebChromeクライアントを設定しようとすると、負荷率イベントが発生しています。そのイベントを聞くことができます。

+0

どのようにですか?理解のためのコードを追加してください。 –

+0

WebView.setWebChromeClient(新しいWebChromeClient(){onProgressChanged @Override公共ボイド(WebViewのビュー、INT newProgress) {super.onProgressChanged(ビュー、newProgress);}} )。 –

+0

まだ数秒間空白のページが表示されます。 newProgress == 100かどうかを確認しました。 –

0

最も簡単なことは、javascriptのドキュメント準備機能からjavaを呼び出すことだけであることがわかりました。

関連する問題