我需要有关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);
填写表单并提交后,我在WebViewClient类的OnReceivedSslError方法中获得回调。在这里我要求它继续(根据各种论坛)。一旦完成,我没有得到任何成功的回调。一旦我从webview获得响应,我需要能够读取javascript值。我不知道如何实现这一目标。 下面显示的是OnSSLErrorReceived Callback方法。
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());
答案 0 :(得分:1)
上述问题已得到解决。调用handler.Proceed OnSSLError方法很好,但问题是在这个回调中调用base。一旦我删除base.OnSSLError我的代码工作正常。
页面完成后,我能够在OnPageFinished回调方法中读取JS值。 此外,评估JS函数也正常工作,我得到了回调。