6

私は最近、私のアプリに時々LAGがあることに気付きました。呼び出した後ログ<GATE-M> DEV_ACTION_COMPLETED</GATE-M>はAndroidで実行が遅れているようです。

webView = (WebView) view.findViewById(R.id.WebView); 

    webView.setWebViewClient(new WebViewClient() { 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      logDebug("Loading URL: " + url); 
      super.onPageStarted(view, url, favicon); 
     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return WrappingClass.this.shouldOverrideUrlLoading(view, url); 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
     logInfo("loading JavaScript to webview."); 
     webView.loadUrl("full-js-here"); 

     } 

     @Override 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      logError("error code:" + errorCode); 
      super.onReceivedError(view, errorCode, description, failingUrl); 
     } 
    }); 

    WebSettings webSettings = webView.getSettings(); 
    webSettings.setSavePassword(false); 
    webSettings.setSaveFormData(false); 
    webSettings.setJavaScriptEnabled(true); 
    webView.requestFocus(View.FOCUS_DOWN); 
    webView.loadUrl("url"); 

:私は無線LANやモバイルデータを使用している場合、私はそれが40秒かかることを意味LAGによって、

私は、ページのURLをロードして、実行するためのjsを読み込む...依存負荷URL、ページは、ウェブビューに表示されるUIが応答している、私は、ボタンをクリックして戻って、アプリケーションをナビゲートすることができます...

しかし

私がしようとしているスクリプト実行は実行されず、実行されません。DEV_ACTION_COMPLETEDがログに出力され、すべて正常に戻り、onPageFinishedが呼び出され、即座にスクリプトが実行されます。問題は、これには最大40秒かかることがあります。

== UPDATE ==

その配列のような...遅延はいくつかのポイントに成長して、その後遅延が何にも短縮されているようだし、再び成長する:0,1、 2,4,8,16,32 ... 0から始まります。

私はwebviewで新しいアクティビティを作成している可能性がありますか?

どのような考えですか?

我々は関係なく、私はこの問題へのJavaソリューションを見つけることができませんでした試みたが、私たちはHTML + JavaScriptの解決策を見つけるやった...この安っぽい問題の解決策をスケッチしていないために管理している
+0

'webView.setW ebChromeClient(新しいWebChromeClient()); webView.setWebViewClient(new WebViewClient()); '前の' webSettings.setJavaScriptEnabled(true); '。また、これを見て:http://stackoverflow.com/questions/5820237/android-webview-loadurl-with-javascript-onpagefinished-lag – Slartibartfast

+0

それは数時間で行くだろう... – TacB0sS

+0

動作しませんでした.. : – TacB0sS

答えて

5

JavaのかわりにonPageFinishを待つので、私たちは

... window.onloadイベントに耳を傾けるためにJavaスクリプトを挿入し、そこに私たちは実際のJavaScriptを注入...魔法のように動作します...

For more details.

+2

あなたのソリューションはうまくいき、私はあなたのソリューションを+1しました。しかし、問題の根本的な原因を特定のURLで突き止めることができれば幸いです。 .com、onPageFinishedは常に直ちにトリガーされます。linkedInのauth urlなどの別のURLを使用すると、onPageFinishedは設定によってアプリケーションのキャッシュをクリアした後に最初のロードでトリガーしません。そのページで起こっているエラー。 – mainframe

+0

私はそれがコンテンツの読み込みと関係していると思います...単純なwebviewアプリケーションを構築してすべてのコールバックを印刷すると、shouldOverride ... url()m AJAX呼び出しであるかどうかによって異なりますが、これには多くの理由があり、WebClientと同じようにChromeClientがレポートしていることがわかりました。 – TacB0sS

関連する問題