“Pas autorisés à charger des ressources locales” pour l'image de la Télécommande page dans PhoneGap Build
Je suis d'hébergement de mes pages web pour une application phonegap build.
Je voudrais utiliser l'appareil photo pour télécharger une photo, et de montrer un aperçu de l'image, en gros cela:
<img src="file:///storage/emulated/0/Android/data/com.myapp.myapp/cache/1470418568917.jpg" height="500" />
Parce que mes pages sont hébergées j'obtiens cette erreur:
Pas autorisés à charger des ressources locales: file:///storage/emulated/0/Android/data/com.myapp.myapp/cache/1470418568917.jpg" source: https://www.myapp.com/v5.5/imager.html#
Je suppose que c'est une partie de la SCRO problème, j'ai donc ajouté ceci à l'html de la page
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; media-src *; img-src * filesystem: data:">
et à mon config.xml (je suis en utilisant Phonegap Build)
<plugin name="cordova-plugin-whitelist" source="npm" />
<allow-navigation href="*" />
<allow-navigation href="*://*/*" />
<allow-navigation href="file:///*/*" />
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />
<allow-intent href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<access origin="*" />
<access origin="*://*/*" />
<access origin="file:///*" />
<access origin="cdvfile://*" />
<access origin="content:///*" />
Comme vous pouvez le voir j'ai essayé tous les paramètres que je pense, de récurer le web.
Ai-je raté quelque chose d'évident?
Merci d'avance.
- Par ailleurs, l'erreur se produit à la fois sur iOS et Android
Vous devez vous connecter pour publier un commentaire.
OK finalement obtenu une solution de contournement, qui est de convertir le fichier:///URI à un cdvfile://URI, qui ma page ne se plaint est un mélange d'avertissement sur le contenu, et ne m'autorisent à accéder à!
Serait encore bien d'avoir un bon moyen d'accéder à un fichier:///Uri, je peux voir des cas où cela ne fonctionnerait pas, mais pour ce que je fais c'est résolu.
cordova-file-plugin
dans xcode simulator sur mac osxQuelque chose à noter ici pour les utilisateurs qui exécutent dans cette, assurez-vous que vous n'exécutez PAS dans les "Live Reload" mode lors de l'essai d'une fonctionnalité de ce genre. Live recharge, dans ce même message d'erreur qui est clairement trompeur. Après la construction de w/o live reload tout a bien fonctionné pour moi, en utilisant le fichier:/OU cdv:/path.
J'ai récemment fait face à la même question. Semble que cordova application ios est exécuté sur localhost:8080 en interne, c'est la principale raison pourquoi il ne permet pas de charger des fichiers à partir de "file://" protocole.
easy fix - "var workingPath = fenêtre.Ionique.normalizeURL(givenPath)";
Veuillez lire l'article de IONIQUE à ce sujet - https://ionicframework.com/docs/wkwebview/
C'est de travailler avec ionique 3 et vous pouvez utiliser ci-dessous pour résoudre le problème pour Pas autorisés à charger des locaux resourse
D'abord mettre ces choses dans la maison.ts
Puis maintenant dans la vue home.html mettre les choses ci-dessous
La réponse de @Vladislav Goloshchapov est le bon pour ma situation (à l'aide de la non-déconseillé forme).
Je suis en train d'ouvrir un Ioniques application à partir d'un Ionique de l'application (à la fois Ionique 4) à l'aide de phonegap-plugin-contentsync qui vous permet de télécharger et décompresser un fichier (fichier Ionique application dans mon cas) dans le système de fichiers local. (La 2ème application n'est pas une application doit être publiée).
J'ai utilisé cela comme:
window.location.href = window.Ionic.WebView.convertFileSrc(url);
pour iOS.Android n'est pas aussi compliqué de sorte que vous pouvez utiliser
window.open(url, '_self');
Mon URL est de la forme (pour iOS):
file:///var/mobile/Containers/Data/Application/[UUID]/Library/NoCloud/[appFolder]/index.html
Je travaillais sur ionic3 application et les tests de la console à l'aide de chrome inspecteur. J'ai aussi été en cours d'exécution et l'émulation avec le --livereload Drapeau, Il n'était pas montrant des images qui ne sont pas sur émulateur, ni sur le périphérique réel.
Je vais à Mentionnés ci-dessus lien et importé le module
importer { normalizeURL } à partir de "ionique-angulaire';
sur le succès de rappel de ma fonction de capture d'image, j'ai croisé le chemin de ce genre et il a travaillé comme un charme.
Après avoir étudié un peu plus, j'ai trouvé que sa raison de --livereload Drapeau, j'ai enlevé le drapeau de commande , exécutez le programme avec la commande suivante et sa montrant une image:
ionique cordova exécuter android
Ma solution a été de retirer
cordova-plugin-ionic-webview
à partir de la liste des plugins