的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();"/>