2017-09-20 13 views
0

Le navigateur Chrome prend en charge plusieurs utilisateurs (personas), de sorte que nous pouvons charger une page Web avec différents cookies et données de session. Cela fonctionne très bien, faire ce que je veux. Maintenant, je souhaite une extension installée sur plusieurs comptes d'utilisateurs pour partager des informations entre les utilisateurs.Comment l'extension Chrome peut-elle se parler lorsqu'elle est installée par différents utilisateurs?

Je ne peux pas voir comment faire cela, aide s'il vous plaît?

Détails et Idées:

En définissant des cookies je peux modifier certaines préférences de la page Web cible, d'utiliser quelques nouvelles fonctionnalités. Certaines fonctionnalités sont différentes, mais les informations de base doivent être les mêmes. Je souhaite les comparer via le code d'extension. En utilisant la fonctionnalité people du navigateur chrome, (personas), je peux charger les anciennes et les nouvelles versions de notre page web en chrome, et les comparer côte à côte.

J'ai également une extension chromée qui gratte une page Web cible, pour extraire des informations telles que les noms, les prix, les informations. Cela fonctionne aussi très bien. Je peux vérifier manuellement les résultats de l'ancienne ou de la nouvelle version de la page.

Maintenant, pour le défi: Comment puis-je comparer les résultats de raclage entre les pages Web chargées sur des personnes différentes (personas). Chaque "personne" a l'extension installée et en cours d'exécution.

Lorsque j'envoie un message externe à l'aide de l'ID d'extension, seules les extensions appartenant aux mêmes "personnes" le reçoivent. Lorsque je regarde les pages d'arrière-plan pour chaque extension "people", elles sont différentes. Définir une valeur pour mon extension dans un n'affecte pas mon extension dans l'autre.

// code in background page. 
chrome.runtime.onMessageExternal.addListener(
    function(request, sender, sendResponse){ 
     console.log('background page was hit'); 
    }); 

// paste code in browser console. 
chrome.runtime.sendMessage('id_here', {getTargetData: true}, 
    function(response) { 
     console.log(response); 
    }); 
+0

Avez-vous essayé d'utiliser '' SharedWorker' ou ServiceWorker' pour communiquer entre des contextes de navigation? Voir [Comment puis-je charger un travailleur Web partagé avec un script utilisateur?] (Https://stackoverflow.com/questions/38810002/) – guest271314

Répondre

2

Vous ne pouvez pas partager des données entre les utilisateurs sur le client. Cela permettrait à votre extension de télécharger potentiellement toutes les données d'un utilisateur et de les partager avec un autre utilisateur.

Cela dit, vous pouvez simplement pousser les données vers un serveur partagé et l'utiliser pour comparer (via HTTP ou Websockets)