PhoneGap sur iOS avec le chemin absolu d'Url pour les actifs?
Le portage d'une application web pour phoneGap sur iOS, nous avons actif (et ajax) les Url qui sont des chemins absolus, par exemple:
<img src="/img/logo.png">
Nous avons le répertoire img emballé sous PhoneGap le répertoire www de. L'image ne se charge pas avec le chemin absolu, mais seulement avec un chemin relatif, par exemple:
<img src="img/logo.png">
Quelqu'un pourrait-il expliquer comment l'URL est précédé ou traduit dans ce contexte? I. e.:
<img src="/www/img/logo.png">
ne fonctionne pas non plus. Alors, quelle est l'URL de base utilisé par PhoneGap sur iOS?
Nous avons également essayé, par exemple:
<img src="file://img/logo.png">
<img src="file:///img/logo.png">
mais pas y aller.
Nous aimerions éviter de changer les Url relatives pour le port, en tant que chemin d'accès absolu Url sont utilisés tout au long de la CSS, Ajax code, sont fixés par les Pignons avec les Rails en arrière-plan, etc. Comment pouvons-nous obtenir PhoneGap/UIWebView sur iOS pour charger les actifs en utilisant le chemin d'accès absolu Url comme l'écrit?
Je vois cette question est posée beaucoup de différentes formes, ici, sur StackOverflow, mais je n'ai pas encore une réponse correcte.
- En supposant que c'est une seule page de l'application (comme c'est généralement recommandé pour les PhoneGap/Cordova), une raison quelconque vous ne pouvez pas utiliser <base href="."> dans votre index.html et appeler cela un jour?
Vous devez vous connecter pour publier un commentaire.
On peut obtenir le chemin d'accès à l'application en JavaScript par:
Depuis que je suis sur Android, il est dit: "file:///android_asset/" ...par exemple:
Comme cela toutes les ressources seraient trouvés quand la croix des capacités pour les différentes plateformes.
Fait quelques tests et peut-être un peu de JavaScript hackery peut le rendre un peu plus facile à gérer. Cela va changer tous les
<a>
et<img>
des étiquettes avec des URL commençant par /pour être relatif au fichier actuel.Mettre dans un fichier et de le joindre à un
<script>
étiquette ou l'injecter avecstringByEvaluatingJavaScriptFromString:
UIWebView
aussi, de sorte que vous allez vous retrouver avec les mêmes problèmes. Je pense que vous devez réécrire le code HTML de façon dynamique (système de template?) et ou aussi intercepter lien de clics en quelque sorte... je n'arrive pas à comprendre comment. Laissez-moi savoir de vos progrès.Lors de la vérification le chemin absolu, par le biais de votre iPhone/iPad, vous verrez quelque chose comme ceci:
Et il le sera sur
Android
ouWindows
appareils, donc je ne pense pas que ce soit une bonne idée d'actifs de référence à l'aide des chemins absolus dans ce cas.Comme alternative, vous pourriez envisager d'utiliser la
base64
chaînes dans vos fichiers CSS:PhoneGap
a un exposé de l'API pour les manipulations de fichier, mais je n'ai pas eu la chance de l'utiliser encore: docs.phonegap.com/en/1.0.0/phonegap_file_file.md.html#File