2010-10-29 11 views
5

J'ai une application qui fonctionne sur les appareils mobiles tels que Android, et j'ai un certain code de suivi de trafic tiers pour suivre l'utilisation de mon application. Ainsi, chaque fois qu'un utilisateur ouvre mon application, le code js envoie un ping au serveur de suivi tiers. Cependant, je ne suis pas sûr s'il y a un moyen facile d'intégrer le code js directement dans mon application qui n'est pas basé sur un navigateur et ne peut pas interpréter le code js. Donc, je peux avoir à exécuter le code js sur le côté serveur. Le code de tiers est le suivant:La manière la plus facile d'exécuter javascript sur le côté serveur

<script type="text/javascript" src="http://www.3rdparty.com/tracking.lib.js"></script> 
<script type="text/javascript"> 
    var instance = new Tracking(); 
    instance.run(); 
</script> 

Quelle est la manière la plus simple d'exécuter ce code côté serveur?

Merci d'avance.

+1

Je pense que vous devriez étudier ce que ce code fait avant de décider si l'exécution sur le serveur a un sens. Par exemple: la plupart des outils de suivi comme celui-ci s'appuient sur un cookie, qui doit être une valeur unique par client. – Pointy

Répondre

5

Il existe plusieurs solutions pour exécuter le javascript côté serveur (Node.JS ou quelque chose basé sur Rhino), mais ce code dépend probablement d'une fonctionnalité qui n'existe que dans un navigateur.

EDIT

je répondu à la question, mais je ne traite pas vraiment le problème. Même si le code s'exécute sur le serveur, il ne fonctionnera pas comme prévu. Vous avez vraiment besoin de trouver une meilleure solution pour le suivi de l'utilisation d'une application non basée sur le Web.

La question que vous devriez avoir posée est: Comment puis-je suivre l'utilisation d'une application Android?

Si vous utilisez déjà un serveur, vous pouvez écrire un service Web simple qui enregistre l'utilisation, il vous suffit d'ouvrir une connexion HTTP depuis votre application.

Je serais surpris s'il n'y a pas de solutions existantes, mais je ne suis pas un gars Android, donc je ne sais pas.

Je vous suggère de supprimer cette question et de la remplacer par une autre ciblant ce que vous tentez réellement d'accomplir.

+0

Merci. Mais pourriez-vous élaborer comment faire cela dans node.js? – Shawn

+0

@Shawn, mis à jour ma réponse pour être plus utile. – mikerobi

1

Je ne sais pas si c'est vraiment possible.

Si c'est un Java Server, vous pouvez utiliser le cadre BeanScripting, mais :

Si le code Javascript fait un peu de calcul comme taille de l'écran, navigateur, etc. Vous n'obtenir cette information.

Vous ne pouvez pas obtenir l'adresse IP ni le client HTTP (quel navigateur, etc.).

Je ne connais pas le code JavaScript, donc je peux me tromper. En fait, le code Javascript appelle votre serveur pour stocker les informations. Vous pouvez inverser le moteur de l'infromation envoyée, en utilisant un Network-Sniffer.

0

'Il se peut donc que je doive exécuter le code js côté serveur. 'pas besoin de courir sur un navigateur côté client, ou un composant lke du navigateur dans votre application native - "Web view" ou leur demander une API REST, obtenir des informations du combiné à partir du code natif et appeler l'API (service web sur http dans la plupart des cas)