的WebView - 拦截表单提交启用JavaScript [英] WebView - intercepting form submission with javascript enabled

查看:1158
本文介绍了的WebView - 拦截表单提交启用JavaScript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有启动Javascript时拦截表单提交的WebView中的一个问题。我创建了一个小例子来说明这个问题。

I have a problem intercepting form submission in WebView when javascript is enabled. I created a small example to demonstrate this problem.

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版本不打印消息

When I run this app on Android 4.x message "Intercepted" is printed when I click on submit button. When I run this app on Android 2.1 - 2.3.x the message is not printed.

我怎么能拦截表单提交在Android 2.1 - 2.3.x版本

How can I intercept form submission on Android 2.1 - 2.3.x?

感谢您。

推荐答案

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

One possible workaround is to make the following change in html file:

而不是

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

使用

<input type="submit" value="Submit" onclick="this.form.submit();"/>

这篇关于的WebView - 拦截表单提交启用JavaScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆