2013-08-22 73 views
5

我設置了一個谷歌+分享按鈕,並且想知道什麼時候有人分享了鏈接,以便我可以執行操作。您可以使用onendinteraction屬性在共享按鈕上註冊回調,並且文檔指出,只要共享框已關閉並且共享完成,就會調用此回調。谷歌+分享和onendinteraction - 沒有確認

在關閉窗口我的函數被調用,而不是在該鏈接實際上是共享:

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> 

我的功能redirectGooglePlus只會被調用時hover類型,永不confirm(這是這應該意味着共享一個已經完成。

有誰知道爲什麼功能不與confirm

僅供參考谷歌的份額文檔他叫回復: https://developers.google.com/+/web/share/

+1

看起來像這是一個錯誤:https://code.google.com/p/google-plus-platform/issues/detail?id=396 –

+0

而他們仍然沒有解決這個錯誤。從這樣一家大公司中相當可憐 – Rossco

回答

1

因此,這似乎與目前實施的谷歌+分享按鈕的錯誤:

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

我已經用了現在的(可怕)的解決方法是看對於onendinteraction的2個懸停事件。如果事件快速連續發生(少於1秒),那麼他們很可能已經分享了這個項目。

0

很晚就這一個,所以可能不相關,但根據Google Developer頁面爲自己的網絡平臺,它似乎可以用類似於JavaScript代碼挖掘到當前用戶的活動清單 -

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

的在線工具來生成和測試查詢終點是那裏的Developer Page

生成和自定義查詢字符串添加到您的用戶所共享,在JS鏈接結束從終點返回的ON可以被解析,以檢查用戶活動流上是否共享了該特定鏈接。 的JSON返回這個樣子的 -

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

如果與自定義查詢的鏈接,如果在返回的項目,瞧之一的附件部分!它已被分享。

0

一個可能的解決方案將作爲解決方法如下。

  1. 讓用戶打開包含只有通過URL共享按鈕的代碼要共享
  2. 在窗口負載
  3. 設置一個變量,以0在你的函數redirectGooglePlus更新變量設置爲1時,一個新的窗口數據onendinteraction叫
  4. 檢查窗口關閉,並驗證變量設置

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