2013-08-22 8 views
5

Sto configurando un pulsante google + share e desidero sapere quando qualcuno ha condiviso il link in modo da poter eseguire un'azione. È possibile registrare una richiamata sul pulsante di condivisione utilizzando l'attributo onendinteraction e la documentazione afferma che questo verrà chiamato ogni volta che la casella di condivisione viene chiusa e ogni volta che la condivisione viene completata.google + share e onendinteraction - no confirm

La mia funzione è chiamata quando la finestra è chiusa, ma non quando il collegamento è in realtà condiviso:

function redirectGooglePlus(jsonParam) { 
    alert(jsonParam.type); 
} 
<div class="g-plus" data-action="share" data-annotation="vertical-bubble" data-height="60" 
       data-href="http://mywebsite.com" data-onendinteraction="redirectGooglePlus"></div> 

La mia funzione redirectGooglePlus è sempre e solo chiamato quando il tipo hover, e mai confirm (che è la uno che si suppone a significare la quota è stata completata.

qualcuno sa il motivo per cui la funzione non viene chiamata con confirm?

FYI la documentazione quota di Google è lui Re: https://developers.google.com/+/web/share/

+1

Sembra che questo sia un bug: https://code.google.com/p/google-plus-platform/issues/detail?id=396 –

+0

E non hanno ancora risolto questo bug. Piuttosto patetico da una grande azienda – Rossco

risposta

1

Quindi, questo sembra essere un bug con l'attuale implementazione del pulsante Google + quota:

https://code.google.com/p/google-plus-platform/issues/detail?id=396

L'(orrendo) soluzione che ho usato per ora è quello di guardare per 2 eventi hover per lo onendinteraction. Se gli eventi arrivano in rapida successione (meno di 1 secondo), è probabile che abbiano condiviso l'oggetto.

0

abbastanza tardi su questo quindi potrebbe non essere relativo ma secondo Google Developer pagina per la loro piattaforma web, sembra che si può attingere l'attuale lista di attività degli utenti utilizzando un codice javascript simile a -

var request = gapi.client.plus.activities.list({ 
    'userId' : 'me', 
    'collection' : 'public' 
}); 

request.execute(function(resp) { 
    var numItems = resp.items.length; 
    for (var i = 0; i < numItems; i++) { 
    console.log('ID: ' + resp.items[i].id + ' Content: ' + 
     resp.items[i].object.content); 
    } 
}); 

lo strumento online per generare e testare il punto finale query è lì sul Developer Page

generare e aggiungere una stringa query personalizzata fino alla fine del collegamento l'utente è la condivisione, il JS ON restituito dal punto finale può essere analizzato per verificare se quel particolare collegamento è stato condiviso sul flusso di attività degli utenti. Il JSON restituito aspetto come questo -

{ 
"items": [ 
    { 
    "title": "", 
    "published": "2015-06-12T16:39:11.176Z", 
    "url": "https://plus.google.com/+UserID/posts/PostID", 
    "object": { 
    "content": "", 
    "attachments": [ 
    { 
     "objectType": "article", 
     "url": "http://www.example.com" 
    } 
    ] 
    } 
    } 
] 
} 

Se il collegamento con la query personalizzata è là nella sezione allegati di uno degli articoli restituiti, Voila! È stato condiviso

0

A Possibile soluzione a questo sarebbe il seguente come un lavoro intorno.

  1. rendere gli utenti aprono una nuova finestra che contiene solo la quota codice pulsante passando l'URL da condividere
  2. impostare una variabile a 0 sulla finestra del carico
  3. Nella funzione redirectGooglePlus aggiornare la variabile a 1 quando dati-onendinteraction si chiama
  4. Controllare la finestra per la stretta e verificare è stata impostata la variabile

    function closeWin(){ 
    
    if(x==0){ 
        //not shared before leaving code; 
    }else{ 
        //shared before window closed; 
    } 
    }  
    body onbeforeunload="closeWin()" 
    
Problemi correlati