2013-08-22 11 views
5

Przygotowuję przycisk Google + udział i chcę wiedzieć, kiedy ktoś udostępnił link, aby móc wykonać działanie. Możesz zarejestrować wywołanie zwrotne na przycisku udostępniania przy użyciu atrybutu onendinteraction, a dokumentacja stwierdza, że ​​zostanie on wywołany za każdym razem, gdy pole udostępniania zostanie zamknięte i gdy udział zostanie ukończony.google + share and onendinteraction - no confirm

Moja funkcja jest wywoływana, gdy okno jest zamknięte, ale nie wtedy, gdy połączenie jest rzeczywiście wspólna:

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> 

Moja funkcja redirectGooglePlus jest zawsze tylko wywoływana, gdy typ hover, i nigdy confirm (co jest taki, który ma oznaczać udziału została zakończona.

Czy ktoś wie, dlaczego ta funkcja nie jest wywoływana z confirm?

FYI dokumentacja akcji google jest on Re: https://developers.google.com/+/web/share/

+1

Wygląda na to, że jest to błąd: https://code.google.com/p/google-plus-platform/issues/detail?id=396 –

+0

Nadal nie rozwiązano tego błędu. Bardzo żałosne z tak wielkiej korporacji – Rossco

Odpowiedz

1

Więc wydaje się, że błąd z bieżącej implementacji przycisku zakładowego google +:

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

The (ohydny) obejście Użyłem teraz ma wyglądać dla 2 zdarzeń najechania dla onendinteraction. Jeśli wydarzenia następują szybko (mniej niż 1 sekunda), prawdopodobnie udostępnili przedmiot.

0

Dość późno na ten jeden, więc nie może być istotne, ale według Google Developer strony na ich platformie internetowej, wydaje się, można dopasować się do aktualnej listy działań użytkowników za pomocą kodu javascript podobny do -

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); 
    } 
}); 

narzędzia online do tworzenia i testowania punkt końcowy zapytanie jest tam na Developer Page

generowanie i dołączyć ciąg niestandardowy zapytanie do końca linku Twój użytkownik jest udostępnianie, JS ON zwrócony z punktu końcowego może zostać przeanalizowany w celu sprawdzenia, czy ten konkretny link został udostępniony w strumieniu aktywności użytkowników. JSON zwrócony wygląda następująco -

{ 
"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" 
    } 
    ] 
    } 
    } 
] 
} 

Jeśli link z kwerendy niestandardowej jest tam w sekcji załączników jednej ze zwracanych przedmiotów, Voila! Zostało udostępnione.

0

Możliwe jest następujące rozwiązanie jako obejście.

  1. Bądź użytkownicy otworzyć nowe okno, które zawiera tylko udział kod przycisku przechodzącej url do podziału
  2. Ustaw zmienną na 0 na obciążenia okno
  3. w funkcji redirectGooglePlus zaktualizować zmienną na 1, gdy danych onendinteraction nazywa
  4. sprawdzić okno za blisko i sprawdzić, czy zmienna została ustawiona

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