gpt4 book ai didi

android - 关于 Android WebView SSL 信任的支持

转载 作者:行者123 更新时间:2023-11-30 02:09:52 25 4
gpt4 key购买 nike

我需要有关 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 回调方法。

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());

最佳答案

上述问题已经解决。在 OnSSLError 方法中调用 handler.Proceed 没问题,但问题在于在此回调中调用 base。删除 base.OnSSLError 后,我的代码运行良好。

页面完成后,我可以在 OnPageFinished 回调方法中读取 JS 值。评估 JS 函数也在工作,我得到了回调。

关于android - 关于 Android WebView SSL 信任的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30255619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com