2010-11-14 5 views
2

Firefox 4 arrive bientôt (ok, l'année prochaine;)) et il y a un plugin Firefox pour synchroniser vos signets etc. avec Firefox 3.whatever.Comment intégrer Firefox Sync?

Je voudrais savoir si quelqu'un a un tutoriel complet et à jour pour intégrer Firefox Sync dans votre propre plugin? Ou une idée à ce sujet?

J'ai principalement suivi this official "tutorial" et aussi this blog post, mais l'information semble être légèrement dépassée. Par exemple, l'objet n'est plus appelé Weave mais Engines et la préférence weave.engines. est devenue services.sync.engines.. J'ai joué un peu avec toutes les options mentionnées, mais cela ne semble pas fonctionner (et mon plugin n'apparaît pas dans la liste où vous pouvez sélectionner quoi synchroniser).

Je suppose que les Tracker et Store classes sont très bien, le problème principal est de registre le moteur ...

Répondre

3

Le tutoriel que vous mentionnez ClientAPI est certainement le chemin à parcourir. Je l'ai mis à jour récemment, donc si quelque chose ne fonctionne pas, s'il vous plaît laissez-nous savoir afin que je puisse le résoudre dans les docs. Le blog de Wladimir est définitivement vieux et contient des informations obsolètes. Nous allons également apporter des modifications à certaines parties de l'API dans les versions bêta à venir, alors soyez prêt pour certains flux ...

L'espace de noms Weave est toujours le moyen canonique d'accéder aux API liées à la synchronisation à partir du code de l'interface utilisateur. Il expose des composants tels que Weave.Service et Weave.Engines. Vous pouvez l'importer via Components.utils.import("resource://services-sync/main.js"). Si vous voulez implémenter votre propre moteur, vous devrez importer les modules sous-jacents réels (tous listés dans le tutoriel ClientAPI). Le tutoriel décrit également comment enregistrer votre implémentation de moteur personnalisée. Une fois enregistré, il ne s'affichera pas automatiquement dans l'interface utilisateur des préférences. Je suggère de construire votre propre interface utilisateur qui retourne le services.sync.engine.YOURENGINE pref dans les préférences de votre module. Par curiosité, quel type de données essayez-vous de synchroniser?

+0

Merci beaucoup pour la réponse, je vais essayer encore une fois. J'étais juste confus par les différentes informations données. Dois-je encore ajouter mon moteur à 'services.sync.registerEngines' (comme il est écrit à la fin)? J'ai créé le plugin FloatNotes, qui vous permet de créer des notes sur des sites Web. Je veux synchroniser ces notes, donc c'est simplement du texte entré par les utilisateurs et certaines positions de méta-données etc. Peut-être que ce n'est pas le bon endroit pour poser, mais je me demandais si le processus de synchronisation fonctionnait ? Parce que mes données sont stockées dans une base de données SQLite –

+0

et pour certaines méthodes (comme 'getAllIDs()') je dois retourner chaque enregistrement et je ne peux pas faire un appel asynchrone, car la méthode n'accepte pas un rappel. Donc je me demandais si cela avait un sérieux impact sur les performances? Encore une fois, je vous remercie beaucoup! –

+0

Oui, coller votre moteur dans l'objet Weave et ajouter le nom à services.sync.registerEngines est certainement un bon moyen de faire enregistrer votre moteur. –