10 votes

Fichiers locaux revisités: Ouverture de fichiers HTML locaux (file:///chemin/vers/fichier) dans Chrome sur Android 10.x

Vous pouvez noter le titre presque identique de cette question. Il revient régulièrement lorsque j'essaie de résoudre mon problème actuel.

J'ai créé une petite application web pour aider au travail. Juste un peu de HTML et de JavaScript, et avant qu'Android ne commence à imposer le Scoped Storage, je n'avais aucun problème à l'utiliser. Maintenant, lorsque j'essaie de charger l'URL (c'est-à-dire: file:///storage/emulated/0/__MyDocs/SignInTracker.html), je reçois une erreur d'accès refusé.

Je pourrais utiliser Firefox, mais il semble que cela soit parce qu'il n'utilise pas encore la norme Scoped Storage, qui, si je comprends correctement, sera une exigence dans la prochaine version d'Android, ce qui signifie que je ne peux pas compter sur son fonctionnement à l'avenir. De plus, Firefox ne fonctionne pas aussi bien que Chrome.

Y a-t-il un moyen approprié pour un non-développeur Android d'utiliser une application web locale comme celle-ci? Existe-t-il peut-être un emplacement sur le téléphone où je peux placer mes fichiers .html et .js qui permettra à Chrome d'y accéder sans problèmes? Au travail, je ne suis pas en ligne ou connecté à quoi que ce soit, donc le chargement à partir d'un autre serveur/ordinateur n'est pas une option.

Pour référence : Ma version de Chrome est 79.0.3945.116, ma version de Firefox est 68.4.1, et mon système d'exploitation de téléphone est Android 10; Pixel Build/QP1A.191005.007.A1.

0 votes

Ce même problème se produit avec d'autres navigateurs comme Firefox et Bromite :-(

10voto

Paul Points 1319

Vous avez 2 options:

  • Vous pouvez utiliser un serveur web local sur votre téléphone Android lui-même. Il existe de nombreuses applications serveur disponibles sur le Play Store, une de ces applications est Simple HTTP Server.

  • Vous pouvez mettre vos documents dans le dossier Android/data/com.android.chrome/files/Download/ dans le stockage interne. Son chemin absolu est /storage/emulated/0/Android/data/com.android.chrome/files/Download/ ou /sdcard/Android/data/com.android.chrome/files/Download/. C'est l'emplacement où Chrome stocke tous les fichiers téléchargés et donc, c'est le seul emplacement où Chrome peut accéder aux fichiers. Mais n'oubliez pas, la désinstallation de Chrome supprimera ce répertoire.

1 votes

J'avais essayé quelques applications serveur mais elles avaient toutes des problèmes (l'une d'elles ne traitait même pas le Javascript). Placer les fichiers dans ce répertoire semble toutefois avoir fonctionné. Merci!

0 votes

Vous pouvez également utiliser le navigateur Opera si vous le souhaitez. Il est très similaire à Chrome car les deux utilisent le même moteur. Opera n'a aucun problème lors de la navigation du stockage.

0 votes

Merci beaucoup pour la suggestion du Simple HTTP Server : il est très facile à utiliser, est gratuit et fonctionne à merveille. C'est une solution de contournement très élégante ! Je ne comprends toujours pas pleinement pourquoi Android n'autorise pas les applications à accéder à des dossiers sélectionnés dans le stockage local. Peut-être que cela sera mis en place dans le futur ; espérons-le.

6voto

Michal Ilčin Points 31

Pour Android 11 [One UI 3.1]

En naviguant dans les fichiers locaux (dans l'espace de stockage interne) dans Chrome en utilisant file:///sdcard/ ou file://localhost/sdcard/, on peut remarquer que seuls les fichiers média et les sous-répertoires (le cas échéant) sont répertoriés dans presque tous les dossiers sauf le dossier "Télécharger" (mais pas dans ses sous-dossiers).

Cela signifie que sur Android 11, le dossier à partir duquel Chrome peut lire les fichiers locaux (m)HTML est le dossier /Download, pas Android/data/com.android.chrome/files/Download dans l'espace de stockage interne ou externe, comme dans Android 10.

REMARQUE : sur mes appareils Samsung, les téléchargements sur le stockage interne étaient enregistrés dans le dossier /Download dans toutes les versions d'Android (9, 10, 11), mais les téléchargements sur une carte SD externe ont changé de dossier de /storage/emulated/exSD_CARD/Android/data/com.android.chrome/files/Download dans Android 10 à /storage/emulated/exSD_CARD/Download dans Android 11, où exSD_CARD est l'étiquette du dispositif pour la carte SD externe (0123-4567 ou 9C33-6BBD dans mes appareils)

Ainsi, les fichiers (m)HTML enregistrés dans le dossier /Download avec Chrome (avec l'extension .mhtml des anciens temps ou avec une extension ajoutée manuellement en renommant les fichiers mhtml enregistrés sans extension - à partir d'un certain moment, Chrome a cessé d'ajouter l'extension .mhtml aux fichiers mhtml enregistrés :) sur mes appareils, je suppose à partir de la mise à niveau vers Android 10)

Cela n'a pas fonctionné pour les fichiers mhtml qui ont été déplacés vers d'autres dossiers puis retournés dans le dossier /Download. (Et en raison de la collecte de fichiers mhtml enregistrés dans de nombreux dossiers différents, j'ai de nombreux fichiers mhtml qui doivent être copiés/déplacés dans le dossier /Download avant l'ouverture, mais ils ne peuvent toujours pas être ouverts)

Notes sur l'ouverture des fichiers mhtml

Je dois utiliser la fonctionnalité "Ouvrir avec" de Total Commander avec l'option file://url cochée, puis choisir Chrome pour ouvrir le fichier (mhtml) avec Chrome (avec file://url coché, Chrome est dans la liste à choisir, sans file://url coché, il n'est pas répertorié dans la liste) ou parcourir les fichiers locaux dans le stockage interne directement dans Chrome (le gestionnaire de fichiers My Files fourni avec l'appareil était inutilisable pour choisir les fichiers mhtml à ouvrir avec Chrome)

Les fichiers (mhtml) du dossier /Download ouverts de cette manière sont ouverts en tant que versions hors ligne des pages web téléchargées - mais seulement si le fichier n'a pas été déplacé et retourné dans le dossier /Download, sinon vous obtenez un message d'Accès refusé. De plus, l'ouverture des fichiers (mhtml) de cette manière avec Total Commander, mais à partir d'autres dossiers que le dossier /Download, conduit à un message d'Accès refusé

L'ouverture de fichiers mhtml à partir de n'importe quel dossier en utilisant Total Commander, mais avec l'option file://url non cochée (dans ce cas, Chrome n'est pas dans la 1ère liste, donc vous devez choisir l'option "Ouvrir avec *" avec l'icône de dossier dans la liste et choisir ensuite Chrome dans la liste suivante) se comporte différemment. L'ouverture de cette manière ne conduit pas à une ouverture réussie ou à un message d'Accès refusé, mais à un formulaire de boîte de dialogue Enregistrer sous dans lequel on peut également choisir si le fichier mhtml réenregistré doit être enregistré dans le stockage interne ou la carte SD externe (si présente). De cette manière, les fichiers mhtml réenregistrés dans le dossier /Download (sur le stockage interne ou externe) peuvent désormais être ouverts en utilisant la boîte de dialogue "Ouvrir avec" de Total Commander avec l'option cochée file://url.


Néanmoins, il existe un moyen d'ouvrir les fichiers (m)HTML avec Chrome

  • sans autres navigateurs/visionneuses
  • sans rooter l'appareil Android

mais peut-être seulement jusqu'à la prochaine mise à jour :)

0 votes

Merci! L'URL file:///sdcard/ fonctionne sur Android 8.

1voto

user12933 Points 101

Mon astuce pour ouvrir des fichiers locaux sur ma tablette Samsung est la suivante :

  1. Installer Ghost Commander depuis f-droid.org (lien)

  2. Naviguer jusqu'au répertoire où se trouve le fichier .html, puis double-cliquer dessus et l'ouvrir avec Chrome, Opera ou le navigateur web Samsung. Malheureusement, je ne peux pas l'associer avec Firefox pour Android (non répertorié).

L'URL semble un peu aléatoire : content://com.ghostsq.commander.FileProvider/FS/L3N0c3JhZ2UvZW11bGF1ZWQvMC9Nb3ZpZXMvenNhbmk/videos.html

Mais tout fonctionne, tous les chemins relatifs répertoriés dans le .html fonctionnent.

Dans mon cas, j'ai une liste de vidéos que je peux filtrer uniquement depuis le .css (intégré dans le fichier .html) sans aucun javascript supplémentaire.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X