Поддержка доверия Android WebView SSL

Мне нужна помощь в отношении доверия SSL. Я загружаю страницу платежного шлюза в WebView. Это запрос POST, и я передаю полезную нагрузку. Это происходит успешно до сих пор. (Показано ниже)

mWebView = (Android.Webkit.WebView)Control;

string payload = "myPayload";

byte[] valTest = Encoding.UTF8.GetBytes(payload.ToCharArray(0, payload.Length));

mWebView.Settings.JavaScriptEnabled = true;
mWebView.Settings.DomStorageEnabled=true;

mWebView.SetWebViewClient(new MyWebViewClient(this));
mWebView.SetWebChromeClient(new ChromeClient());
mWebView.PostUrl("https://mypage", valTest);

После заполнения формы и отправки я получаю обратный вызов в методе OnReceivedSslError класса WebViewClient. Здесь я прошу его продолжить (согласно различным форумам). Как только это будет сделано, я не получаю никакого обратного вызова. Мне нужно иметь возможность читать значения javascript, как только я получу ответ от веб-просмотра. Я не знаю, как этого добиться. Ниже показан метод обратного вызова OnSSLErrorReceived.

public override void OnReceivedSslError(Android.Webkit.WebView view, SslErrorHandler handler, Android.Net.Http.SslError error)
        {
                base.OnReceivedSslError(view, handler, error);
                handler.Proceed();
                           }
        }

Ожидания- 1. При отправке формы следует доверять (это самозаверяющий сертификат). 2. Как только этот шаг будет выполнен, мы ожидаем ответа от веб-страницы. Нам нужно прочитать значения javascript со страницы. Как я могу этого добиться? Я не вижу ни SuccessCallback, ни ResponseCallback.

Я использую ниже, чтобы прочитать значения JS. Но это не работает.

 view.EvaluateJavascript("document.getElementById('test').value", new MyCallbackClass());

person Aniruddha Chakravorty    schedule 15.05.2015    source источник


Ответы (1)


Вышеупомянутая проблема решена. Вызов handler.Proceed в методе OnSSLError был в порядке, но проблема заключалась в вызове базы внутри этого обратного вызова. Как только я удалил base.OnSSLError, мой код заработал нормально.

После завершения страницы я могу прочитать значения JS в методе обратного вызова OnPageFinished. Также работает функция оценки JS, и я получаю обратные вызовы.

person Aniruddha Chakravorty    schedule 18.05.2015
comment
В моем случае метод onReceivedSSLError не вызывается, вместо этого вызывается метод onReceivedError. - person KK_07k11A0585; 04.08.2015