2015-05-15 3 views
1

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

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, как только я получаю ответ от webview. Я не знаю, как этого добиться. Ниже показан метод OnSSLErrorReceived Callback.

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

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

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

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

ответ

1

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

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

+0

В моем случае метод onReceivedSSLError не получает вызов, а onReceivedErrror получает вызов –

Смежные вопросы