的Android,网页视图,得到提交的表单数据(Android, Webview, get subm

2019-07-29 16:04发布

我想我的Android应用程序中使用网页视图来显示一个HTML表单。 当用户按下提交按钮,它要发回给我的节目名称/值对。 我该怎么做呢?

我已经看过其他类似的问题,但没有答复的告诉怎么样,具体而言,要做到这一点。

Answer 1:

考虑的WebView内使用的JavaScript接口。 请参阅Android开发者指南的这个区域 。 基本上,你应该能够从网页使用JavaScript接口进行通信的设备,让当按下提交按钮的网页视图活动了解和发送它的价值超过。



Answer 2:

我发现我需要的东西。 如果我在表单的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。



Answer 3:

如果你想保存名称/值对,并愿意使用jQuery那么它很简单。 假设你把jQuery的在你的资产文件夹可以读入从文件:

getResources().getAssets()

在您设置(假设你推翻客户端)的WebViewClient你可以这样做:

view.loadUrl("javascript:" + escapedJqueryStringHere);

然后,请确保您有配置为与方法的网页视图一个JavascriptInterface,例如,所谓的“ReturnJSONFromForm(JSON字符串)”配置为“MyJInterface”,那么形式加载到页面,然后试试这个:

webview.loadUrl("javascript:MyJInterface.ReturnJSONFromForm($(\"form\").serialize());");

现在,在你的界面,只是从结果字符串创建一个JSONObject和你去那里! 从表单名称/值对。

序列化不会捕捉禁用字段或如果你需要,那么一个更复杂的JavaScript解决方案存在,但它更困难的提交按钮..。



文章来源: Android, Webview, get submitted form data