gpt4 book ai didi

android - 在 Android 中连接丢失时重新提交表单

转载 作者:行者123 更新时间:2023-11-29 01:55:50 25 4
gpt4 key购买 nike

我正在尝试实现一个应用程序,它使用 WebView 来显示一个内部有表单的网站。问题是,当用户填写表格并在按下发送按钮之前,互联网连接丢失。在这种情况下,我收到 onErrorReceived 回调,这是我的实现:

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
mDisconnected = true;
mDisconnectUrl = failingUrl;
mWebView = view;
mWebView.saveState(mWebViewState);
}

所以我尝试将表单的内容和失败的 url 存储在这里,这样当连接再次建立时我可以继续发送它。所以我有另一个线程试图与服务器建立新的 Socket 连接,当它成功时,我在我的 WebViewClient 类 reconnect() 中调用一个函数:

void reconnect(Context appContext) {
if (mDisconnected) {
try {
((Activity) appContext).runOnUiThread(new Runnable() {
public void run() {
mWebView.reload();
mWebView.restoreState(mWebViewState);
}
});
} catch (Exception e) {
mWebView.goBack();
}
mDisconnected = false;
}
}

所以我尝试重新加载并恢复表单数据,以便 WebView 可以继续其发送操作。问题是当页面再次加载时,表单中输入的所有数据都丢失了,并且不会继续发送操作,该操作在连接丢失之前已经被点击过。有任何想法,如何解决这个问题。

数据非常敏感,所以继续发送很重要。也可以让用户重新填写表单,重新发送,但在这种场景下是不希望的。

编辑:也许这个问题可以简化。有没有什么功能或方法可以在WebViewClient中刷新一个网站,它会从它离开的地方继续并将表单数据检索到问题发生之前的状态。

最佳答案

使用数据库存储表单内容,然后通过服务发送数据。提交成功后删除数据库内容。

关于android - 在 Android 中连接丢失时重新提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15222317/

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