我想我的Android应用程序中使用网页视图来显示一个HTML表单。 当用户按下提交按钮,它要发回给我的节目名称/值对。 我该怎么做呢?
我已经看过其他类似的问题,但没有答复的告诉怎么样,具体而言,要做到这一点。
我想我的Android应用程序中使用网页视图来显示一个HTML表单。 当用户按下提交按钮,它要发回给我的节目名称/值对。 我该怎么做呢?
我已经看过其他类似的问题,但没有答复的告诉怎么样,具体而言,要做到这一点。
考虑的WebView内使用的JavaScript接口。 请参阅Android开发者指南的这个区域 。 基本上,你应该能够从网页使用JavaScript接口进行通信的设备,让当按下提交按钮的网页视图活动了解和发送它的价值超过。
我发现我需要的东西。 如果我在表单的HTML设定动作='FORM”,那么我可以拦截与该动作:
public void onLoadResource (WebView view, String url){
int index = url.indexOf("FORM?");
if (index != -1){
String d = URLDecoder.decode(url.substring(index+5));
}
}
名称/值对在字符串d。
如果你想保存名称/值对,并愿意使用jQuery那么它很简单。 假设你把jQuery的在你的资产文件夹可以读入从文件:
getResources().getAssets()
在您设置(假设你推翻客户端)的WebViewClient你可以这样做:
view.loadUrl("javascript:" + escapedJqueryStringHere);
然后,请确保您有配置为与方法的网页视图一个JavascriptInterface,例如,所谓的“ReturnJSONFromForm(JSON字符串)”配置为“MyJInterface”,那么形式加载到页面,然后试试这个:
webview.loadUrl("javascript:MyJInterface.ReturnJSONFromForm($(\"form\").serialize());");
现在,在你的界面,只是从结果字符串创建一个JSONObject和你去那里! 从表单名称/值对。
序列化不会捕捉禁用字段或如果你需要,那么一个更复杂的JavaScript解决方案存在,但它更困难的提交按钮..。