Je suis en train de mettre en œuvre l'application Webview sous Android. Lorsque j'essaie de charger https url une ou deux fois, il termine l'activité . Agian essayant de charger https url cela indique que la page Web n'est pas disponible. S'il vous plaît trouver ci-dessous l'image ce que j'ai.
Lorsque je clique à nouveau sur cette URL, le site Web s'affiche.
J'ai utilisé le code ci-dessous pour charger l'URL.
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("https://www.facebook.com");
webView.clearView();
webView.measure(100, 100);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@SuppressLint("NewApi")
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
// this will ignore the Ssl error and will go forward to your site
handler.proceed();
error.getCertificate();
}
});
s'il vous plaît toute aide les gars .......
Merci d'avance
Essayez d'utiliser les attributs ci-dessous:
webView = (WebView) findViewById(R.id.webView1);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
Ajouter des paramètres Internet dans votre fichier manifest.xml
<uses-permission Android:name="Android.permission.INTERNET" />
et vérifier pouvez-vous accéder à Internet sur votre appareil.
Supprimer cette chaîne:
super.onReceivedSslError(view, handler, error);
et dans cette méthode
public boolean shouldOverrideUrlLoading(WebView view, String url) {
retourne à faux
comme ça:
return false;
Ça m'a aidé
Vous devriez enlever ceci
super.OnReceiveSslError(view,handler,error);
Ajoutez cette méthode de substitution à votre implémentation WebViewClient. Vous devrez le compiler avec Android SDK 2.2 (API niveau 8) ou une version ultérieure. La méthode apparaît dans le SDK public à partir de la version 2.2 (API de niveau 8), mais nous l’avons testée sur des appareils exécutant les versions 2.1, 1.6 et 1.5, et elle fonctionne également sur ces appareils (le comportement a donc toujours été présent).
WebView.setWebViewClient(new WebViewClient() {
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
handler.proceed();
}
});
Une possibilité ici est une condition de concurrence.
Vous chargez https://www.facebook.com/ avant de configurer WebViewClient. Il est donc possible que votre implémentation de OnReceivedSslError () ne soit jamais appelée si vous obtenez une réponse assez rapide de facebook.
Cela expliquerait pourquoi cela fonctionne pour certaines personnes, pas pour d'autres, et fonctionne toujours si la page est rechargée.
De plus, je pense que vous devriez simplement renvoyer false depuis shouldOverrideUrlLoading () si vous voulez que la page soit chargée plutôt que d'essayer de la recharger - cela pourrait provoquer une récursion/un plantage infini - éventuellement en fonction du temps.
Décembre 2016 réponse:
Si cela se produit uniquement sur certains appareils avec Android 5+ et sur certaines pages, cela est probablement dû à ce bogue lié au chrome:
https://www.chromium.org/developers/androidwebview/webview-ct-bug
La solution consiste à: