WebView正在获取表单数据
WebView grabbing form data
我已经编写了一个混合了HTML5和android代码的应用程序-它运行良好,但我遇到了一些问题。
我们的应用程序有一个人们将填写的表格(带有复选框和相应的数据以及评论部分)。这个人可以点击每个复选框,但我需要填充点击的项目,获取他们选择的数据和他们发表的评论。
最好的方法是什么?仅供参考:数据只是列在一个表中,每个表单的复选框数量都会发生变化。它们都与同一事物(或同一类)有关。
我已经编写了一个javascript接口,但在找出解析表单数据的最佳方法时遇到了问题。
谢谢!
<form>
<div id="colors">
<table>
<tr>
<th>More header</th><th>NOHTING</th><th>Header</th><th></th>
</tr>
<tr>
<label for="checkbox1" id="checkbox-0">
<td class="stock">1261561</td>
<td class="etete">whatever</td>
<td class="gtgtg">random data</td>
</label>
<td class="add"><input type="checkbox" value="1" checked /></td>
</tr>
<tr>
<label for="checkbox2" id="checkbox-1">
<td class="stock">1261563</td>
<td class="etete">something</td>
<td class="gtgtg">details here</td>
</label>
<td class="add"><input type="checkbox" value="2" checked /></td>
</tr>
<tr>
<label for="checkbox3" id="checkbox-2">
<td class="stock">1261529</td>
<td class="etete">blah</td>
<td class="qtqtq">blah blah</td>
</label>
<td class="add"><input type="checkbox" value="3" checked /></td>
</tr>
<input type="hidden" id="hidden1" value="xxxxxx" />
<input type="hidden" id="hidden2" value="xxxxxxxxxx" />
<input type="hidden" id="hidden3" value="" />
<input type="hidden" id="fah21" value="x" />
<input type="hidden" id="asdf1" value="xxxx,xxx,xx" />
</table>
</div>
<div id="footer">
<textarea placeholder="Add Your Comments..."></textarea>
<div id="cancel">
<img src="../images/cancel.png" height="50px" width="260px" onclick="goBack()">
</div>
<div id="save">
<img src="../images/save.png" width="260px" height="100px" onClick="parseForm()" />
</div>
</div>
</form>
parseForm()是我想不通的。
类和数据的名称已更改。此外,当用户单击复选框时,此脚本被称为:
$(document).ready(function(){
$('input[type=checkbox]').tzCheckbox({labels:['Add to whatever','Click to Add']});
});
javascript接口可以接受任何数据,无论是JSON、原始数据还是其他数据——我会修复我的代码以使其正常工作。
最简单的方法是包含如下JQuery函数:
$('form').submit(function() {
Android.processFormData(decodeURIComponent($("form").serialize()));
return false;
});
一旦你在代码中有了它,就为它编写一个javascript接口,并像这样附加它:
webview.addJavascriptInterface(new JavaScriptInterface(), "Android");
然后在你的代码中,也添加这个:
private class JavaScriptInterface{
JavaScriptInterface(){}
JavaScriptInterface(Context c){}
public void saveSheetAndClose(){
webview.goBack();
}
public void processFormData(String data) {
//I'm just splitting and spitting it out to the log. You'd need to write
//a parser here.
String[] tokens = data.split("[&]+");
for (int i = 0 ; i<tokens.length; i++){
if (tokens[i].contains("check")){
//I use | in checkboxes to separate multidata
String Checkbox[] = tokens[i].split("[|]+");
tokens[i] = "check";
Log.i("TokenSplit", " " + tokens[i]);
for (int j=0; j<Checkbox.length; j ++)
if (!Checkbox[j].contains("check"))
Log.i("TokenSplit", " " + Checkbox[j]);
//cheap way of removing check= if you have multiple values
}else{
Log.i("TokenSplit", "" + tokens[i]);
}
}
saveSheetAndClose();
}
}
注意,最好接受parseFormData()中的数据,并将数据发送到ASync进程,以防止UIThread锁定。一定要这样做!
相关文章:
- 如何从pdftron webviewer获取表单数据
- JS验证ajax返回的html中的表单数据
- 在不同的文件中使用Javascript获取表单数据
- 使用Javascript读取Webstorage表单数据
- Uploadify-随机表单数据's已返回上载表单
- 如何在使用ajax提交的codeigniter中使用form_validation验证表单数据
- 在post-expressjs之后持久化表单数据
- 需要一个用于AJAX的Javascript库,其中包含多部分/表单数据
- jQuery发布并获取表单数据
- Ajax表单数据phpPOST不工作
- 如何将整个模型集附加到表单数据中,并在MVC中获得它
- 如何从javascript访问表单数据
- 如何从Angular Payments获取表单数据
- 通过javascript获取pdf文件的表单数据
- 有没有一种方法可以在jQuery.serialize()之前获取表单数据,或者与jQuery.sserialize(()
- 在 Angular2 中构建多部分/表单数据 POST 请求并验证输入类型文件
- 无法读取未定义的属性“用户名” - 通过电子邮件在 Node.js 中发送表单数据
- 使用 Ajax 获取表单数据
- 我无法从引导模式中清除表单数据
- 如何从 django 模板语言获取表单数据