2016-07-19 3 views
0

Ich erstelle eine App, die in der Lage sein muss, auf bestimmte Websites gehen, um Javascript auf diese Websites zu injizieren. Die Website, auf die ich zugreifen muss, wird jedoch nicht geladen, wenn ich es versuche. Dies ist meine Tätigkeit des CodeWhite Screen beim Besuch einer bestimmten Website auf Android Webview

import android.content.SharedPreferences; 
import android.media.audiofx.BassBoost; 
import android.preference.PreferenceManager; 
import android.support.v4.content.SharedPreferencesCompat; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class ConvergintActivity extends AppCompatActivity { 

    WebView webView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_convergint); 

     webView = (WebView) findViewById(R.id.convergintWebView); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.clearSslPreferences(); 
     webView.loadUrl("https://infoshare.convergint.com/login.php"); 
     webView.setWebViewClient(new WebViewClient() { 

      public void onPageFinished(WebView view, String url) { 
       // do your stuff here 
       SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
       String username = sharedPrefs.getString("convergintUsername", ""); 
       Log.e("Debug!", "Username = "+ username); 
      } 

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

Die Webseite ich zu laden bin versucht https://infoshare.convergint.com/login.php. Warum wird www.google.com geladen, aber infoshare.convergint.com/login.php nicht? Wie kann ich dieses Problem beheben?

Antwort

0

Versuchen Sie, die Seite in Ihre Webansicht zu laden? Sie sollten shouldOverrideUrlLoading() setzen, um false zurückzugeben.

Sie können jedoch diese Einstellungen hinzufügen und

webView.getSettings().setDomStorageEnabled(true); 
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 

Fehlerreaktion in Webview Um zu überprüfen, fügen Sie diese in Ihrem WebViewClient Methode

@Override 
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error){ 
         //do something here 
} 
+0

Ich habe genau wie Sie gesagt haben, aber ich bin immer noch nur einen weißen Bildschirm. Ich habe das Logcat überprüft und festgestellt, dass die Validierung der Zertifikatskette fehlschlägt: "java.security.cert.CertPathValidatorException: Trust anchor for certification path not found". Weißt du, wie ich das beheben kann? @Eztephen – Bdubbs