我发现了一个我无法复制的有趣错误,但认为这里有人可以提供一些见解。
我有一项活动,目前部分原生,部分基于网络。我的意思是,一个元素只是一个WebView,直到可以实现本机级别的实现。
当我在加载的页面中进行更改时,我发现在移动界面中使用Chrome开发者工具立即进行了更改。但是,我无法立即在MainApp中看到我的WebView中的更改。作为测试,我安装了一个新的应用程序,在WebView中加载页面,我看到了更改。在我的MainApp中清除数据后,我能够看到所述更改。
我做了一些更改,但现在这些更改立即反映在我的WebView中(退出活动并重新进入)。
这些是我的WebView设置,你能看到我最初没有看到这些变化的原因吗?我在处理数据如何存储在WebView中并且想要确保我对我的网页所做的更新立即反映在应用程序中时,我不是很精明(还是:))。谢谢!
// Initialize WebView
if (Build.VERSION.SDK_INT >= 19)
mWebView.setWebContentsDebuggingEnabled(false);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// Hide ProgressBar
mProgressBar.setVisibility(View.GONE);
}
});
final ActionBarActivity activity = this;
mWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Activities and WebViews measure progress with different scales.
// The progress meter will automatically disappear when we reach 100%
mProgressBar.setProgress(progress);
}
});
// Settings for WebView data
WebSettings ws = mWebView.getSettings();
ws.setSaveFormData(false);
ws.setSavePassword(false); // Not needed for API level 18 or greater (deprecated)
答案 0 :(得分:1)
您可能需要为webview禁用缓存。数据更改后,您需要使用mWebView.reload()
答案 1 :(得分:0)
如果您想在每次重新打开时重新加载 webview。
将此设置用于 webview
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
这不会加载缓存并且需求会得到满足。