我正在编写一个应用程序,应该将地址放入本地投放网站的搜索字段中,以便我可以获取可用的餐馆。为此,我尝试使用webview中的一些javascript来填充搜索但是在提交表单时会出现以下错误: I / chromium:[INFO:CONSOLE(12)]" Uncaught TypeError:无法读取属性'类型'未定义",来源:https://deliveroo.fr/fr/(12)
如果我自己单击按钮,错误也会重复。如果我手动填写地址,该网站似乎在同一webview中正常工作。任何帮助深表感谢。我已经尝试过从类似问题中找到的所有内容,例如激活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/");
网站代码:
<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"/>