启用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上的表单提交?
谢谢。
答案 0 :(得分:1)
一种可能的解决方法是在html文件中进行以下更改:
而不是
<input type="submit" value="Submit" />
使用
<input type="submit" value="Submit" onclick="this.form.submit();"/>