带有 Javascript 的 WebView 不断重新加载
Posted
技术标签:
【中文标题】带有 Javascript 的 WebView 不断重新加载【英文标题】:WebView with Javascript keep reloading 【发布时间】:2019-09-26 07:01:19 【问题描述】:我正在使用 WebView 在我的应用程序中显示网站。 在加载 WebView 时,我首先需要填写身份验证表单,然后重定向到原始 URL。
我的 WebView 不断地重新加载。 谁能向我解释一下如何使用“自动”填充的 WebView?
final WebView mWebView;
//Show webview into the app via a popup
AlertDialog.Builder mAlertDialog = new AlertDialog.Builder(context);
mAlertDialog.setTitle(R.string.menuBuyCredit);
mWebView = new WebView(context);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setjavascriptEnabled(true);
mWebView.loadUrl(ConstantsClass.URL_BUY_CREDIT);
mWebView.setWebViewClient(new WebViewClient()
@Override
public void onPageFinished(WebView view, String url)
super.onPageFinished(view, url);
//In order to automatically fill the form
final String mJavaScript = "javascript:" +
"document.getElementById('Login').value = '" + ClientSingleton.getInstance().getmLogin() + "';" +
"document.getElementById('Password').value = '" + ClientSingleton.getInstance().getmPassword() + "';" +
"document.getElementById('Btn_Envoyer').click()";
view.loadUrl(mJavaScript);
view.loadUrl(ConstantsClass.URL_BUY_CREDIT);
view.pageDown(true);
);
mAlertDialog.setView(mWebView);
mAlertDialog.setNegativeButton(R.string.closeDrawer, new DialogInterface.OnClickListener()
@Override
public void onClick(DialogInterface dialogInterface, int i)
dialogInterface.dismiss();
);
mAlertDialog.show();
```
【问题讨论】:
【参考方案1】:你应该使用类似的东西
把它放在全局中
boolean loadedAlready = false;
在onPageFinished
方法内
if (view.getUrl().equals(ConstantsClass. URL_BUY_CREDIT) && !loadedAlready)
loadedAlready= true;
view.load(ConstantsClass.URL_BUY_CREDIT);
【讨论】:
以上是关于带有 Javascript 的 WebView 不断重新加载的主要内容,如果未能解决你的问题,请参考以下文章
带有 Javascript 的 WebView 不断重新加载
Android 在 WebView 中调用 JavaScript 函数
尝试退出插件 webview 时,带有集成插件的 Cordova 应用程序在 webview 上崩溃(android 测试)