我需要加载一个HTML页面,其中包含只有一个数字输入字段的表单。期望的行为是:
当用户在此字段中输入一些数据并点击Android键盘上的转发按钮时,会执行一项功能并显示一个值,而不会将他带到另一个页面。< / p>
问题是,当用户点击前进时,应用会因FileUriExposedException而崩溃。搜索了一下之后,我发现此错误与this bug有关。
(2)中显示的其中一个解决方案是添加一个额外的隐形表单,但是有人知道另一个解决方案吗?因为我认为更改所有HTML表单比通过Android尝试解决方案更耗时。
答案 0 :(得分:0)
不确定是否避免点击向前会有所帮助,但是这里有一种方法可以提交给表单,而无需用户直接在表单中输入,如果你让他们在编辑文本中输入数字,保存其值然后使用某些东西像这样。如果要启动,则可以将webview可见性设置为不可见,然后在提交后将其显示为可见。您可以通过右键单击并点击Inspect来找到表单中元素的ID。
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.loadUrl(getString(R.string.form_url));
mWebView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
String fieldID;
String submitButtonID;
int numberTypedInByUser
mWebView.loadUrl("javascript: {" +
"document.getElementById('"+fieldID+"').value = '"+numberTypedInByUser+"';" +
"var z = document.getElementById('"+submitButtonID+"').click(); };");
}
});