Android webview sdk23 javascript form.submit()不能正常工作

时间:2016-08-03 12:03:20

标签: javascript android forms webview

感谢您的帮助。我已经使用了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...

0 个答案:

没有答案