setzen loadURLTImeOutValue auf Webview

Ich arbeite mit phonegap und Android und habe meine .html und js Dateien auf einem externen Server. Wenn ich den folgenden Code verwende, lädt die App meine externen .html Dateien und alles funktioniert gut:

this.setIntegerProperty("loadUrlTimeoutValue", 60000); this.loadUrl("http://www.myserver.com"); 

Allerdings, wenn die Arbeit über ein Webview kann ich nicht scheinen, um die loadURLTimeoutValue für eine Webansicht:

  • IllegalStateException, wenn .replace Fragment beim Neustart
  • Ich kann das Problem nicht mit einem Stacktrace-Fehler bezeichnen
  • Handhabung von Push-Benachrichtigungsszenarien auf iOS und Android
  • Wie tausche ich die Metadaten und die Spur von einem Shoutcast-Stream, ohne separate Anforderung für Metadaten und das Streaming zu machen
  • Unterschied zwischen Aktivität und FragmentActivity
  • Strange ArrayIndexOutOfBoundsException in android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback
  •   private WebView webView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { webView = (WebView) findViewById(R.id.webview); webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); webView.loadUrl("http://www.myserver.com"); } 

    Das funktioniert nicht. Wie kann ich den Timeout-Wert auf das Webview einstellen?

  • Erstellen einer einfachen Erinnerungsanwendung in Android
  • Übergeben Sie einen Wert auf loadURL - Android
  • Android: Wie zeichne Wegweiser Google Maps API V2 vom aktuellen Standort zum Ziel
  • Einstellung der UI-Präferenz Zusammenfassung auf den Wert der Präferenz
  • Google Play und OpenSSL Warnmeldung
  • Wie kann ich die Kameraauflösung in Android mit OpenCV einstellen?
  • 4 Solutions collect form web for “setzen loadURLTImeOutValue auf Webview”

    Dies ist ein Workaround, um das beschriebene Verhalten zu simulieren. Sie können einen WebViewClient und die onPageStarted Methode überschreiben:

     public class MyWebViewClient extends WebViewClient { boolean timeout; public MyWebViewClient() { timeout = true; } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } if(timeout) { // do what you want } } }).start(); } @Override public void onPageFinished(WebView view, String url) { timeout = false; } } 

    Wenn Timeout, kannst du zB eine Fehlerseite laden …

    Um den WebViewClient WebView hinzuzufügen, WebView einfach das:

     webView.setWebViewClient(new MyWebViewClient()); 

    Ich habe das benutzt, um eine Zeit für meine WebView zu setzen:

     public class MyWebViewClient extends WebViewClient { boolean timeout = true; @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { Runnable run = new Runnable() { public void run() { if(timeout) { // do what you want showAlert("Connection Timed out", "Whoops! Something went wrong. Please try again later."); } } }; Handler myHandler = new Handler(Looper.myLooper()); myHandler.postDelayed(run, 5000); } @Override public void onPageFinished(WebView view, String url) { timeout = false; } } 

    Die korrekte Art, das Standard-Timeout zu ändern, verwendet das Tag <preference /> in der Datei config.xml, zum Beispiel:

     <preference name="loglevel" value="DEBUG" /> <preference name="loadUrlTimeoutValue" value="60000" /> <preference name="errorUrl" value="file:///android_asset/www/connection_error.html" /> 

    Weitere Optionen finden Sie unter Android-Konfiguration .

    Wenn Sie CordovaWebView erweitern, welches Sie sollten, um die Phonegap-API zu erhalten, können Sie einfach die folgenden verwenden:

     this.getIntent().putExtra("loadUrlTimeoutValue", 60000); 

    Intern implementiert CordovaWebView einen Timeout-Mechanismus, der den im vorherigen Beitrag vorgeschlagenen Timeout ähnelt (Standard Timeout = 2000).

    Beachten Sie, dass dies keine dokumentierte Schnittstelle ist, also könnte es in Zukunft brechen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.