0

启用 javascript 时,我在 WebView 中拦截表单提交时遇到问题。我创建了一个小例子来演示这个问题。

test1.html

<html>
  <body>
    <h1>Test 1</h1>
    <form action="http://111.222.33.44/test/test2.html" method="get">
      <input type="text" name="text1" />
      <input type="submit" value="Submit" />
    </form>
  </body>
</html>

测试活动

public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView webView = (WebView) findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true);

        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                Log.d("Test app", "Intercepted");
                return true;
            }

        });
        webView.loadUrl("http://111.222.33.44/test/test1.html");
    }

}

当我在 Android 4.x 上运行此应用程序时,单击提交按钮时会打印消息“已拦截”。当我在 Android 2.1 - 2.3.x 上运行此应用程序时,不会打印该消息。

如何在 Android 2.1 - 2.3.x 上拦截表单提交?

谢谢你。

4

1 回答 1

1

一种可能的解决方法是在 html 文件中进行以下更改:

代替

<input type="submit" value="Submit" />

采用

<input type="submit" value="Submit" onclick="this.form.submit();"/>
于 2013-04-08T12:44:48.050 回答