У меня есть простое приложение для веб-проекта для моего сайта
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
после добавления этой строки кода для повышения скорости браузера мои пользователи не могут войти на сайт
можно ли отключить кеширование для определенных ссылок?если я отключаю кеширование страницы входа в систему, проблема решается ,,,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.navigationdrawer);
drawerLayout = findViewById(R.id.drawer);
navigationView = findViewById(R.id.navigationviwe);
swipeLayout = findViewById(R.id.swipe);
swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
check();
webView.reload();
swipeLayout.setRefreshing(false);
}
}, 1000);
}
});
Pushe.initialize(this, true);
navcolor();
if (savedInstanceState == null) {
webView = findViewById(R.id.webview);
webView.loadUrl("http://archclub.ir/login");
}
webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setSavePassword(true);
webView.getSettings().setSaveFormData(true);
webView.getSettings().setEnableSmoothTransition(true);
webView.getSettings().setDomStorageEnabled(true);
Intent intent = getIntent();
Uri data = intent.getData();
check();
if (data != null) {
webView.loadUrl(data.getScheme() + "://" + data.getHost() + data.getPath());
} else {
webView.loadUrl("http://archclub.ir/login");
}
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Toast.makeText(MainActivity.this, webView.getUrl(), Toast.LENGTH_SHORT).show();
check();
String ex = webView.getUrl();
if (url.contains("archclub_bot")) {
Intent telegram = new Intent(Intent.ACTION_VIEW, Uri.parse("https://telegram.me/archclub_bot"));
startActivity(telegram);
webView.loadUrl(ex);
} else if (url.contains("https://www.instagram.com/")) {
Toast.makeText(MainActivity.this, "Instagram page...", Toast.LENGTH_SHORT).show();
openInstagramIntent(MainActivity.this, "archclub.ir");
webView.loadUrl(ex);
}
return false;
}
});
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.menu1:
Toast.makeText(MainActivity.this, "صفحه نخست...", Toast.LENGTH_SHORT).show();
drawerLayout.closeDrawer(Gravity.RIGHT);
webView.loadUrl("http://archclub.ir/");
break;
case R.id.menu2:
String ex = webView.getUrl();
Toast.makeText(MainActivity.this, "Instagram page...", Toast.LENGTH_SHORT).show();
openInstagramIntent(MainActivity.this, "archclub.ir");
webView.loadUrl(ex);
break;
case R.id.menu3:
MainActivity.super.onBackPressed();
break;
case R.id.menu4:
Toast.makeText(MainActivity.this, "tlgrm:@alihushi", Toast.LENGTH_LONG).show();
break;
}
return true;
}
});
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
webView.saveState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
webView.restoreState(savedInstanceState);
}
public void onBackPressed() {
if (drawerLayout.isDrawerOpen(Gravity.RIGHT)) {
drawerLayout.closeDrawer(Gravity.RIGHT);
} else {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
}
public void navcolor() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.colorPrimaryDark));
}
}
void check() {
final String ex = webView.getUrl();
final ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED
|| conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
} else if (conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED
|| conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this)
.setCancelable(false)
.setMessage("دسترسی به اینترنت وجود ندارد!")
.setPositiveButton("خروج", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
})
.setNegativeButton("تلاش مجدد", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED
|| conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
webView.loadUrl(ex);
}
check();
}
});
builder.create().show();
}
}
public static void openInstagramIntent(Context context, String instagramID) {
Uri uri = Uri.parse("http://instagram.com/_u/archclub.ir");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setPackage("com.instagram.android");
try {
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
context.startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("http://instagram.com/archclub.ir")));
}
}