2015-10-12 22 views

risposta

15

Solo un po 'di configurazione:

webview.getSettings().setJavaScriptEnabled(true); 
    webview.getSettings().setDomStorageEnabled(true); 
+40

Ho avuto lo stesso problema e queste righe non ha risolto il mio problema. – marceloquinta

+1

Come hai risolto il tuo problema @marceloquinta? Anche il mio non funziona con questo. –

+1

questo è anche lo stesso avviso per me? qualche altra soluzione ?? –

5

ho ottenuto lo stesso errore e la soluzione Burhans non mi stava aiutando. Penso che le cose siano andate storte quando stai cercando di caricare URL diversi troppo velocemente.

Edit: Trovato un migliore crediti soluzione andare a user2652394 WebView must be loaded twice to load correctly

Devi fare qualcosa di simile:

 webView.postDelayed(new Runnable() { 

      @Override 
      public void run() { 
       webView.loadUrl(landingpage); 
      } 
     }, 500); 
+0

corretto, ma chiamando all'interno del metodo 'shouldOverrideUrlLoading'. – Bharatesh

+0

grazie per aver salvato il mio tempo. –

+0

non funziona per me –

2

Ho affrontato lo stesso problema.

È stato risolto dando a WebView un'altezza statica (ad esempio 300 dpi) o specificando il valore minHeight.

2

Ecco come ho risolto un problema analogo:

mWebView.setWebChromeClient(new WebChromeClient()); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setDomStorageEnabled(true); 

    mWebView.setWebViewClient(new WebViewClient() { 
     public boolean shouldOverrideUrlLoading(WebView view,String url) { 
      return false; 
     } 
    }); 

    mWebView.loadURL(... 
3

Questo problema nel mio caso prodotti dalle impostazioni non corrette nelle proprietà di layout. Avevo usato:

<WebView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/webView" 
    android:layout_below="@+id/textView" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="false" 
    android:layout_alignWithParentIfMissing="false" /> 

Invece di impostazione:

<WebView 
    android:id="@+id/webView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@+id/textView" /> 

I problemi erano stati risolti, quando ho tolto le impostazioni "layout_alignParent".

+0

Grande! Tutte le altre soluzioni non hanno funzionato per me. Questo ha funzionato :) – Kiki

0

Verificare se il permesso Internet è impostato correttamente sul file Manifest. Assicurati che il tag di autorizzazione sia all'esterno dello del tag dell'applicazione.

<uses-permission android:name="android.permission.INTERNET" /> 

Spero che questo possa aiutare qualcuno.

1

In ritardo alla festa, ma potrebbe aiutare alcuni. Può sembrare sciocco, ma l'errore che ho fatto non è stato aggiungere http:// all'inizio dell'URL.

0

Ho trovato una soluzione alternativa utilizzando il metodo onPageFinished anziché shouldOverrideUrlLoading. Fornisce inoltre l'URL necessario nell'elenco di argomenti.

L'unico trucco consiste nell'impostare un controllo in modo che la logica principale del metodo (nel mio caso la creazione di un Toast) non venga attivata quando onPageFinished viene richiamato sul caricamento della pagina stessa.

0

Sfondo

Ecco il codice sorgente del metodo di nel motore del browser che dà l'errore (BindingManagerImpl.java), da Chromium source:

@Override 
public void determinedVisibility(int pid) { 
    ManagedConnection managedConnection; 
    synchronized (mManagedConnections) { 
     managedConnection = mManagedConnections.get(pid); 
    } 
    if (managedConnection == null) { 
     Log.w(TAG, "Cannot call determinedVisibility() - never saw a connection for the pid: " 
       + "%d", pid); 
     return; 
    } 

Analisi

Si tratta di un rendering avvertimento dal contenuto.

consecutivi chiamate a loadUrl causare una condizione gara. Il problema è che loadUrl("file://..")non completa immediatamente, e così quando si chiama loadUrl("javascript:..") che a volte eseguito prima la pagina è stata caricata.

Particolare

Per ulteriori dettagli vedi this StackOverflow risposta.

0
mWebView.setDownloadListener(new DownloadListener() { 
    @Override 
    public void onDownloadStart(String url, String userAgent, String contentDisposition, 
    String mimetype, long contentLength) { 
    Log.d("download",url); 
    } 
}); 
+2

Una risposta utile dovrebbe sempre spiegare perché il problema (errore) si sta verificando e spiegare perché la risposta suggerita (il tuo codice) dovrebbe funzionare o risolverlo. Senza alcuna spiegazione questa risposta non è di aiuto - questo è molto importante soprattutto per una domanda che ha già un numero di risposte presentate. – ishmaelMakitla

0

Ho affrontato lo stesso problema. Posso risolvere il mio problema dando questo codice:

webView.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      webView.loadUrl(url); 
     } 
    }, 500); 

invece di:

webview.loadUrl(url); 

quindi, impostare i url inizia con https://