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

在Android中连接丢失时重新提交表单,android,forms,webview,form-submit,Android,Forms,Webview,Form Submit,我正在尝试实现一个应用程序,它使用WebView显示一个包含表单的网站。问题是,当用户填写表单时,就在按下发送按钮之前,互联网连接丢失。在本例中,我接收onErrorReceived回调,下面是我的实现: @覆盖 public void onReceivedError(WebView视图、int错误代码、字符串描述、字符串失败URL){ mDisconnected=true; mDisconnectUrl=故障连接Url; mWebView=视图; 保存状态(mWebViewState); }

我正在尝试实现一个应用程序,它使用WebView显示一个包含表单的网站。问题是,当用户填写表单时,就在按下发送按钮之前,互联网连接丢失。在本例中,我接收onErrorReceived回调,下面是我的实现:

@覆盖
public void onReceivedError(WebView视图、int错误代码、字符串描述、字符串失败URL){
mDisconnected=true;
mDisconnectUrl=故障连接Url;
mWebView=视图;
保存状态(mWebViewState);
}
因此,我尝试将表单的内容存储在这里和失败的url,以便在再次建立连接时继续发送它。因此,我有另一个线程试图与服务器建立新的套接字连接,当连接成功时,我调用WebViewClient类reconnect()中的一个函数:

void重新连接(上下文appContext){
如果(mDisconnected){
试一试{
((活动)appContext).runUnuithRead(新的可运行(){
公开募捐{
mWebView.reload();
mWebView.restoreState(mWebViewState);
}
});
}捕获(例外e){
mWebView.goBack();
}
mDisconnected=false;
}
}
因此,我尝试重新加载并恢复表单数据,以便WebView可以继续其发送操作。问题是当再次加载页面时,表单中输入的所有数据都会丢失,并且发送操作不会继续,在连接丢失之前已单击该操作。有谁知道,如何解决这个问题

数据非常敏感,因此继续发送非常重要。也可以让用户再次填写表单并再次发送,但在这种情况下不需要这样做

编辑:
也许这个问题可以简化。是否有任何功能或方法可以刷新WebViewClient中的网站,该网站将继续保留,并将表单数据检索到问题发生前的状态。

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

您能提供提交数据的代码吗?
shouldInterceptRequest(WebView视图,字符串url)
是否提供必须检索的url?或者,
应该覆盖url加载(WebView视图,字符串url)
。。。如果两者都没有帮助,则可能是从表单重新提交(WebView视图、Message dontResend、Message resend)发送dontResend操作。?@Snippet:提交数据的代码是什么意思。它是网站,它可以是任何网站,我没有代码。我也不允许使用java脚本注入。
shouldOverrideUrlLoading(WebView视图,字符串url)
未被调用,因为发送按钮使用POST方法。我将尝试
shouldInterceptRequest(WebView视图,字符串url)
并更新帖子。我认为,
onFormResubmission(WebView视图,messagedontresend,messageressend)
只有在加载的页面是帖子的结果时才被调用,所以在这种情况下它永远不会被调用。你能更具体一些,并给出一些例子吗?如果你对sqlite有任何想法,请使用该数据库来存储表单的内容。现在创建一个始终运行的服务。在此服务中,创建一个检查数据库是否有数据的方法。如果有,则通过multipart entity和httpPost发送数据。并在响应为200时截断表。很抱歉,我没有任何示例可以显示。我不知道sqlite,但是是否可以在不了解任何网站代码的情况下保存表单数据。该网站可以是我的客户创建的任何网站。我不知道所有的源代码。你需要获取API,该API必须是XML或JSON格式才能访问数据。否则就不可能了。