感谢您的帮助。我已经使用了stackoverflow多年,并感谢这里发布的所有工作。
此问题现在是我之前没有的安全或隐私权限吗?
我有使用Android webview的工作代码。 min SDK为19(KitKat 4.4),Target SDK为23 Marshmallow 6.0。测试设备是三星Galaxy S6。
使用WebView.loadURL(“javascript:...”)的一切正常。我甚至在那里有警报显示JavaScript的客户端运行正常。
然而,这一行不起作用。
WebView.loadURL("javascript: document.forms[0].submit();");
我也试过
WebView.evaluateJavaScript("document.forms[0].submit();", null);
(注意:我在这里一般使用“WebView”。我的对象变量在下面的代码snipet中是正确的。) 在所有情况下,表格都不会提交。 HTML很好。我自己写的,很简单。并且使用WebView.loadURL从公共Web服务器加载ASPX页面
<html>
<body>
<form name="form1" method="post" action="result_android.aspx" id="form1">
<div >
<table width=240px ><tr><td colspan=2>
<img src="../images/bw_main360.png" width="240" />
</td></tr>
<tr><td colspan=2><b>Welcome to our test site</td></tr>
<tr><td style="width: 84px">Test 1:</td>
<td><input name="txt1" type="text" id="txt1" /></td></tr>
<tr><td style="width: 84px">Test 2:</td>
<td><input name="txt2" type="text" id="txt2" /></td></tr>
<tr><td style="width: 84px"></td><td><input type="submit" name="btnSubmit" value="Submit" id="btnSubmit" style="height: 26px" /></td></tr>
</table>
</div>
</form>
</body>
</html>
即使尝试通过getElementsByTag“点击”提交按钮也不起作用。 最后,我们尝试对确切的表单名称进行硬编码,以排除每个变量,但仍然没有运气。
LogCat中的信息非常少。我们还在WebView.evaluateJavascript调用中添加了错误代码,以测试是否报告了错误。
WebView在onCreateView
中设置 public static class PlaceholderFragment extends Fragment {
WebView mainWebView;
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_web_main, container, false);
setRetainInstance(true);
mainWebView = (WebView) rootView.findViewById(R.id.webMain);
mainWebView.getSettings().setJavaScriptEnabled(true);
mainWebView.setWebChromeClient(new WebChromeClient());
mainWebView.setWebViewClient(new WebViewClient());
mainWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
MyJavaScriptInterface javaInterface = new MyJavaScriptInterface();
mainWebView.addJavascriptInterface(javaInterface, "HTMLOUT");
mainWebView.loadUrl(homeURL);
return rootView;
}
... more code here...