2010-11-26 6 views
4

J'ai créé un site mobile en utilisant jQTouch, et maintenant je travaille pour que ce même site fonctionne avec PhoneGap. Pour PhoneGap, j'ai déplacé la plupart de tous les éléments (pages, images, JS, CSS, etc.) dans le répertoire www, mais j'ai encore besoin de charger du contenu dynamique via Ajax. À partir du site mobile, j'utilise des URL relatives pour charger du contenu supplémentaire. Cependant, avec PhoneGap, je n'ai pas trouvé un moyen d'utiliser les URL relatives pour accéder à mon site mobile et j'ai été forcé d'utiliser des URL absolues. Ma question est la suivante: Existe-t-il un moyen d'utiliser les URL relatives avec PhoneGap? Peut-être quelque chose comme la définition d'une URL de base lors de l'initialisation PhoneGap?PhoneGap Relative URL

Répondre

4

Lorsque vous utilisez PhoneGap les fichiers principaux seront sur le téléphone afin que les fichiers relatifs seront par rapport à l'emplacement sur le téléphone.

Si vous avez besoin d'accéder à un fichier sur un serveur distant (votre site mobile), il doit être indiquée de façon absolue.

Si votre page HTML dans votre application PhoneGap est à file://www/index.html et que vous essayez et accéder à un fichier relatif (par exemple « logo.png ») et ainsi préciser <img src="logo.png" /> vous vraiment l'obtenir de file://www/logo.png. Si vous vouliez réellement la version de logo.png qui se trouve réellement sur votre site web distant, vous devez fournir le chemin complet (absolu) ou il n'y a aucun moyen pour le navigateur de le savoir quand vous spécifiez "logo.png" vous voulez dire celui sur "http://www.your-site.com/logo.png".

+0

Merci Matt. Je pensais que cela pourrait être la réponse. Ce serait génial si PG avait un init qui prenait une URL de base. Serait certainement utile lors du portage à partir d'un mobile existant. Cela rendrait mon application Rails plus simple, car elle ne devrait pas générer de vues différentes. –

+0

vérifier cela, vous pouvez avoir la référence PhoneGap un chemin racine externe, comme votre environnement de mise en scène ou votre serveur local: http://www.joeldare.com/wiki/open_a_url_in_phonegap –

3

Vous pouvez using the <base> tag. Cela va régler votre URL de base à tout ce dont vous avez besoin:

<base href="http://yourdomain.com/"> 
<script src="js/remotescript.js"></script> 

Notez cela signifie maintenant vos locales scripts doivent être en forme absolue:

<script src="http://localhost/js/phonegap.js"></script> 

Voir this other question for more info au sujet de cette note. Le gars il suggère un préfixer point (.) avant l'URL relative locale , bien que je ne pas testé cette:

<script src="./js/phonegap.js"></script> 
+0

je testé ce que le gars suggère et cela n'a pas fonctionné pour moi. – nisc