我想在WebView中打开一个网页,并在页面加载后自动点击按钮。这是我目前的WebView
课程:
public class WebViewFragment extends Fragment {
...
@Override
public void onResume() {
super.onResume();
openUrl();
}
private void openUrl() {
setCookies();
if (urlToOpen != null) {
//tell webview to handle redirects (by default browser launches on redirects)
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
if (getActivity() != null)
((MainActivity) getActivity()).onShowLoading();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (getActivity() != null) {
executeJS();
((MainActivity) getActivity()).onHideLoading();
}
}
});
if (javascriptToExecute != null) {
webview.getSettings().setJavaScriptEnabled(true);
}
webview.loadUrl(urlToOpen);
}
}
private void executeJS() {
System.out.println("executeJS(): " + javascriptToExecute);
webview.loadUrl(javascriptToExecute);
}
}
我可以使用"javascript:$('#customer-info-edit').click();"
或"javascript:document.getElementById('customer-info-edit').click();"
都可以正常使用。
但问题是他们只工作一次。如果我是第一次打开WebView,则单击该按钮。但是,如果我按下物理后退按钮并再次打开WebView,则不会单击该按钮。为什么Javascript每次都不工作?
答案 0 :(得分:0)
我不知道究竟是什么问题,但我找到了一个有效的解决方案:在执行javascript之前添加500毫秒的延迟。