আমার এক ক্রিয়াকলাপে আমার একটি ওয়েবভিউ রয়েছে এবং এটি কোনও ওয়েবপৃষ্ঠা লোড করার পরে পৃষ্ঠাটি ফেসবুকের কিছু পটভূমি ডেটা সংগ্রহ করে।
আমি যা দেখছি তা হ'ল, অ্যাপ্লিকেশনটিতে প্রদর্শিত পৃষ্ঠাটি প্রতিবার অ্যাপ্লিকেশনটি খোলা এবং রিফ্রেশ করার সময় একই হয়।
আমি ক্যাচ ব্যবহার না করার জন্য এবং ওয়েবভিউয়ের ক্যাশে এবং ইতিহাস সাফ করার জন্য ওয়েবভিউকে সেট করার চেষ্টা করেছি।
আমি এখানে পরামর্শটিও অনুসরণ করেছি: কীভাবে ওয়েবভিউয়ের জন্য ক্যাশে খালি করবেন?
তবে এর কোনওটিই কাজ করে না, কারও কি আমার কোনও ধারণা আছে যে এই সমস্যাটি কাটিয়ে উঠতে পারে কারণ এটি আমার আবেদনের একটি গুরুত্বপূর্ণ অঙ্গ।
mWebView.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
if(progress >= 100)
{
mProgressBar.setVisibility(ProgressBar.INVISIBLE);
}
else
{
mProgressBar.setVisibility(ProgressBar.VISIBLE);
}
}
});
mWebView.setWebViewClient(new SignInFBWebViewClient(mUIHandler));
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.clearHistory();
mWebView.clearFormData();
mWebView.clearCache(true);
WebSettings webSettings = mWebView.getSettings();
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
Time time = new Time();
time.setToNow();
mWebView.loadUrl(mSocialProxy.getSignInURL()+"?time="+time.format("%Y%m%d%H%M%S"));
সুতরাং আমি প্রথম পরামর্শটি বাস্তবায়িত করেছি (যদিও কোডটি পুনরাবৃত্ত হওয়ার জন্য পরিবর্তন করা হয়েছে)
private void clearApplicationCache() {
File dir = getCacheDir();
if (dir != null && dir.isDirectory()) {
try {
ArrayList<File> stack = new ArrayList<File>();
// Initialise the list
File[] children = dir.listFiles();
for (File child : children) {
stack.add(child);
}
while (stack.size() > 0) {
Log.v(TAG, LOG_START + "Clearing the stack - " + stack.size());
File f = stack.get(stack.size() - 1);
if (f.isDirectory() == true) {
boolean empty = f.delete();
if (empty == false) {
File[] files = f.listFiles();
if (files.length != 0) {
for (File tmp : files) {
stack.add(tmp);
}
}
} else {
stack.remove(stack.size() - 1);
}
} else {
f.delete();
stack.remove(stack.size() - 1);
}
}
} catch (Exception e) {
Log.e(TAG, LOG_START + "Failed to clean the cache");
}
}
}
তবে এটি এখনও পৃষ্ঠাটি কী প্রদর্শিত হচ্ছে তা পরিবর্তিত হয়নি। আমার ডেস্কটপ ব্রাউজারে আমি ওয়েবভিউতে উত্পাদিত ওয়েব পৃষ্ঠায় বিভিন্ন এইচটিএমএল কোড পাচ্ছি যাতে আমি জানি যে ওয়েবভিউ অবশ্যই কোথাও ক্যাশে হচ্ছে।
আইআরসি চ্যানেলে আমাকে ইউআরএল সংযোগ থেকে ক্যাচিং সরিয়ে ফিক্সের দিকে নির্দেশ করা হয়েছিল তবে কীভাবে এটি এখনও ওয়েবভিউতে প্রয়োগ করা যায় তা দেখতে পাচ্ছি না।
http://www.androidsnippets.org/snippets/45/
আমি যদি আমার অ্যাপ্লিকেশনটি মুছে ফেলি এবং এটি পুনরায় ইনস্টল করি তবে আমি ওয়েবপৃষ্ঠাটি আপ টু ডেট পেতে পারি, অর্থাত্ একটি নন-ক্যাশেড সংস্করণ। মূল সমস্যাটি হ'ল ওয়েবপৃষ্ঠায় লিঙ্কগুলিতে পরিবর্তনগুলি করা হয়, সুতরাং ওয়েবপৃষ্ঠার সামনের প্রান্তটি সম্পূর্ণ অপরিবর্তিত।
mWebView.getSettings().setAppCacheEnabled(false);
কাজ হয়নি?