Android Webview:“未捕获的TypeError:无法读取未定义的属性'类型'”

And*_*man 5 javascript java android webview

我正在编写一个Android应用,该应用应该将该地址放入本地送货网站的搜索字段中,以便我获取可用的餐厅。为此,我试图使用Web视图内的一些JavaScript来填充搜索,但是在提交表单时出现以下错误:I / chromium:[INFO:CONSOLE(12)]“未捕获的TypeError:无法读取未定义的属性'types' ”,来源:https//deliveroo.fr/fr/(12)

如果我自己单击按钮,错误也会重发。如果我手动填写地址,则该网站似乎可以在同一Web视图中正常工作。任何帮助深表感谢。我已经尝试了我从类似问题中发现的所有内容,例如激活DomStorage或清理现金。

我的代码:

final WebView web = webView;
        web.clearCache(true);
        web.clearHistory();
        web.getSettings().setSaveFormData(false);
        web.clearFormData();
        web.getSettings().setJavaScriptEnabled(true);
        web.getSettings().setDomStorageEnabled(true);

        web.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url)
            {super.onPageFinished(web, url);
final String js = "javascript:" + "document.getElementsByName('address_search')[0].value = '" + address + "';" + "document.getElementById('find_food').click();";

                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                        view.evaluateJavascript(js,null);
                    }else {view.loadUrl(js);
                    }

            }
        });

        web.loadUrl("https://deliveroo.fr/fr/");
Run Code Online (Sandbox Code Playgroud)

网站代码:

<div class="landing-index-page-search__container" data-reactid=".1d1c1t7z20w.2.0.0.1.1">
    <h1 class="landing-index-page-search--main-title" data-reactid=".1d1c1t7z20w.2.0.0.1.1.0">Vos restaurants préférés, livrés en moins de 30 minutes.</h1>
    <form method="get" action="" class="landing-index-page-search--form landing-index-page-search--non-postcode" data-reactid=".1d1c1t7z20w.2.0.0.1.1.2">
    <span data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.0"></span>
    <div data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.1">
    <div class="landing-index-page-search--input" data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.1.1">
    <div class="landing-index-page-search--input address-search" data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.1.1.1">
    <input name="address_search" type="text" tabindex="-1" class="" placeholder="Saisissez votre adresse" value=" " data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.1.1.1.0"/></div>
    <input id="find_food" type="submit" value="Voir les restaurants" class="button" data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.1.1.2"/>
Run Code Online (Sandbox Code Playgroud)