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
}
Wenn ich versuche, eine URL in das WebBView zu laden, wird nur ein leerer Bildschirm angezeigt. Wenn ich Google.com oder yahoo.com lade, funktioniert es einwandfrei.
android
webview
https
android-webview
sumit
quelle
quelle
Antworten:
Bitte besuchen Sie diesen Link:
Fügen Sie diese überschreibende Methode Ihrer WebViewClient-Implementierung hinzu. Sie müssen es mit Android SDK 2.2 (API Level 8) oder höher kompilieren. Die Methode wird im öffentlichen SDK ab 2.2 (API-Level 8) angezeigt, wir haben sie jedoch auf Geräten mit 2.1, 1.6 und 1.5 getestet und sie funktioniert auch auf diesen Geräten (das Verhalten war also offensichtlich die ganze Zeit vorhanden).
das wird dir helfen.
quelle
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.
Im Folgenden finden Sie ein kleines Codebeispiel, das möglicherweise hilfreich ist.
Erstellen Sie zunächst eine Klasse, die WebViewClient erweitert und SSL-Fehler ignoriert:
Legen Sie dann mit Ihrem Webansichtsobjekt (initiiert in der OnCreate () -Methode) seinen Webansichtsclient als Instanz der Überschreibungsklasse fest:
quelle
Ändern Sie Ihren Code so, dass SslErrorHandler.proceed () immer dann aufgerufen wird, wenn das vom Server vorgelegte Zertifikat Ihren Erwartungen entspricht, und rufen Sie ansonsten SslErrorHandler.cancel () auf, um die Überprüfung von SSL-Zertifikaten ordnungsgemäß zu handhaben und die Ablehnung von Anwendungen durch Google gemäß der neuen Sicherheitsrichtlinie zu vermeiden.
Zum Beispiel füge ich einen Warndialog hinzu, um den Nutzer bestätigen zu lassen, und Google zeigt anscheinend keine Warnung mehr an.
Nach diesen Änderungen wird keine Warnung angezeigt.
quelle
Entfernen Sie den folgenden Code, es wird funktionieren
quelle
onReceivedSslError überschreiben und entfernen
Und um die Google-Sicherheit zu lösen:
Der vollständige Code lautet:
quelle
Kopiere und füge deine Codezeile ein, Bruder, es wird funktionieren, vertrau mir :) Ich denke, du bekommst einen SSL-Fehler. Wenn Sie die Methode override onReceivedSslError verwenden und super entfernen, ist dies eine super Methode. Schreiben Sie einfach handler.proceed (), der Fehler wird behoben.
quelle
onReceivedSslError
retten meinen TagUm SSL-URLs zu verarbeiten, verwenden Sie die Methode onReceivedSslError () aus der WebViewClient-Klasse. Dies ist ein Beispiel:
Sie können mein vollständiges Beispiel hier überprüfen: https://github.com/Jorgesys/Android-WebView-Logging
quelle
Gehen Sie folgendermaßen vor, um die Google-Sicherheit zu lösen:
Linien nach oben:
Code:
quelle
Ich habe die obigen Antworten befolgt, aber es scheint immer noch nicht für mich zu funktionieren. Der folgende Code hat mir bei der Integration von Zahlungsgatways, bei denen es sich normalerweise um https-Anfragen handelt, einen Trick getan:
Der obige Code führt eine Post-Anfrage in der Webansicht durch und leitet zum Zahlungs-Gateway weiter.
Das Einstellen
settings.setDomStorageEnabled(true);
hat mir einen Trick getan Ich hoffe, das hilft.quelle
webview.getSettings.setDomStorageEnabled(true);
es magisch funktioniert. Möglicherweise verwendet die Webseite eine Art HTML 5-API, sodass die Aktivierung von DomStorage für mich funktioniert hat.Empfohlener Ansatz wird sein
1. Super- Methode nicht aufrufen (Super-Aufruf aus überschriebener Methode entfernen)
2. Google empfiehlt, die Methode SslErrorHandler.cancel () aufzurufen , wenn ein Fehler auftritt
3. Dialogfeld "Nicht auffordern" , um SSL-Fehler anzuzeigen
Was ist die beste Lösung? Entfernen Sie diese Überschreibungsmethode
quelle
Das Festlegen dieser beiden Eigenschaften hat ausgereicht, damit es für mich funktioniert, und ist keinen Sicherheitsproblemen ausgesetzt:
quelle
Verwenden Sie diese Zeile webview.getSettings (). SetDomStorageEnabled (true) in Ihrem Java-Code
quelle