Est-il possible d'implémenter une sorte de fonction "clear cache" dans React-Native afin que l'utilisateur puisse cliquer sur un bouton et que le cache de l'application soit effacé ?
Merci d'avance.
Est-il possible d'implémenter une sorte de fonction "clear cache" dans React-Native afin que l'utilisateur puisse cliquer sur un bouton et que le cache de l'application soit effacé ?
Merci d'avance.
Quel type de cache voulez-vous nettoyer ? Un cache au niveau de l'application ? Si oui, créez le module natif react-native et implémentez la fonctionnalité dont vous avez besoin.
ou vous voulez faire la même chose avec : npm start -- --reset-cache ? C'est impossible à faire avec la boîte. Mais vous pourriez étendre le packager react-native et ajouter une option de menu développeur pour le faire.
Vous pouvez utiliser ce module https://github.com/midas-gufei/react-native-clear-app-cache
ou implémenter la suppression du cache séparément en natif selon les besoins de votre projet (comme mon projet qui avait juste besoin de se débarrasser des mp4 et des pdfs). Les ressources en cache peuvent être trouvées à ios : NSTemporaryDirectory()
NSError *error;
NSArray *directoryItems1 = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:&error];
NSLog(@"%@, %@", directoryItems1, [directoryItems1 objectAtIndex:0]);
if ([[NSFileManager defaultManager] fileExistsAtPath:[directoryItems1 objectAtIndex:0]]) //Does directory exist?
{
if (![[NSFileManager defaultManager] removeItemAtPath:[directoryItems1 objectAtIndex:0] error:&error]) //Delete it
{
NSLog(@"Delete directory error: %@", error);
}
}
Android : `
public void clearApplicationData()
{
File cache = getCacheDir();
File appDir = new File(cache.getParent());
if (appDir.exists()) {
String[] test = cache.list();
Log.d("before", Arrays.toString(test));
for (String s : test) {
if (s.contains(".pdf") || s.contains(".mp4")) {
deleteDir(new File(cache, s));
Log.i("TAG", "**************** File /data/data/APP_PACKAGE/" + s + " DELETED *******************");
}
}
Log.d("After delete", Arrays.toString(cache.list()));
}
}
public static boolean deleteDir(File dir)
{
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return dir.delete();
}`
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.