Android WebView pas de chargement d'une URL HTTPS
public void onCreate(Bundle savedInstance)
{
super.onCreate(savedInstance);
setContentView(R.layout.show_voucher);
webView=(WebView)findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
String url ="https://www.paymeon.com/Vouchers/?v=%C80%8D%B1x%D9%CFqh%FA%84%C35%0A%1F%CE&iv=%25%EE%BEi%F4%DAT%E1"
//webView.loadUrl(url); //Not Working... Showing blank
webView.loadUrl("http://www.yahoo.com"); //its working
}
Quand j'essaye de charger une URL dans le WebBView il n'affiche qu'un écran vide. Si je charge Google.com ou yahoo.com ça fonctionne très bien.
- ça fonctionne, j'ai vérifié maintenant. vérifiez de nouveau si pas de travail après que ajouter cet avec votre code webView.getSettings().setUseWideViewPort(true); webView.getSettings().setLoadWithOverviewMode(true);
Vous devez vous connecter pour publier un commentaire.
Veuillez visiter ce lien:
Ajouter cette méthode de remplacement pour votre WebViewClient mise en œuvre. Vous aurez besoin de le compiler avec le SDK Android 2.2 (API niveau 8) ou plus tard. La méthode apparaît dans le public SDK que de 2,2 API (niveau 8), mais nous l'avons testé sur les appareils exécutant 2.1, 1,6 et 1,5 et il fonctionne sur les appareils (donc évidemment le comportement qui a été là tout le long).
cela va vous aider.
Your app(s) listed at the end of this email have an unsafe implementation of the WebViewClient.onReceivedSslError handler. Specifically, the implementation ignores all SSL certificate validation errors, making your app vulnerable to man-in-the-middle attacks.
Apps with vulnerabilities that expose users to risk of compromise may be considered Dangerous Products in violation of the Content Policy and section 4.4 of the Developer Distribution Agreement.
Par réponse correcte en fargth, suit en est un petit exemple de code qui pourrait vous aider.
Tout d'abord, créez une classe qui étend la classe WebViewClient et qui est configuré pour ignorer les erreurs SSL:
Ensuite avec votre site web à la vue de l'objet (initiée dans le OnCreate() la méthode), réglez l'affichage web client à être une instance de la remplacer classe:
De traiter correctement les certificats SSL de validation et d'éviter les demande de rejet de la part de Google selon la nouvelle Politique de Sécurité, Modifiez votre code pour appeler SslErrorHandler.aller de l'avant() chaque fois que le certificat présenté par le serveur répond à vos attentes, et d'invoquer SslErrorHandler.annuler() sinon.
Par exemple, j'ajoute une boîte de dialogue d'alerte à l'utilisateur de procéder ont confirmé et il semble que Google n'affiche plus de message d'avertissement.
Après cela change, il ne sera pas afficher l'avertissement.
Supprimer le code ci-dessous, il travaillera
remplacer onReceivedSslError et supprimer
Et à résoudre Google de sécurité:
Code complet est:
Pour gérer SSL url de la méthode onReceivedSslError() de la WebViewClient classe, C'est un exemple:
Vous pouvez consulter mon exemple complet ici:
https://github.com/Jorgesys/Android-WebView-Logging
J'ai suivi les réponses ci-dessus, mais encore il semble ne pas fonctionner pour moi code ci-dessous fait un truc pour moi lors de l'intégration de paiement gatways qui sont généralement les requêtes https :
Code ci-dessus est de faire une requête post dans webview et de la rediriger vers la passerelle de paiement.
Réglage
settings.setDomStorageEnabled(true);
fait un truc pour moiEspérons que cette aide .
webview.getSettings.setDomStorageEnabled(true);
la magie a fonctionné. Peut-être que la page web à l'aide de une sorte de HTML 5 de l'API, ce qui DomStorage a fonctionné pour moi.Pour résoudre sécurité au sein de Google, ce faire:
Lignes vers le haut:
Code:
Copier et coller la ligne de code bro , il fonctionnera de confiance en moi 🙂 je pense ,vous obtenez une erreur ssl. Si vous utilisez remplacer onReceivedSslError méthode et supprimer super c'est super méthode. Il suffit d'écrire gestionnaire.aller de l'avant() ,une erreur résoudre.
onReceivedSslError
sauver ma journéeApproche recommandée sera
1.Ne l'appelez pas super méthode(Supprimer super appel de méthode substituée)
2.Google recommande d'appeler SslErrorHandler.annuler() méthode si aucune erreur vient
3.Ne pas la boîte de dialogue d'Invite pour exposer les erreurs SSL
Quel est la meilleur solution??
Réglage de ces deux propriétés ont été assez pour le faire fonctionner pour moi, et ne pas exposer à des problèmes de sécurité :