2016-05-16 45 views
0

我需要落實到我的SPA Web應用程序(JavaScript和AngularJS)分享網址,其中包括像參數的能力:動態參數Facebook分享鏈接

http://MyTestSite.com?action=view&docID=12345 

或:

http://MyTestSite.com?action=edit&docID=67890 

的正在顯示的頁面可能包含一個列表,其中包含很多可以共享的文檔,我需要在每個文檔中附加共享的可能性(適用的操作取決於文檔的狀態)。

經過大量的谷歌搜索後,似乎共享包含參數的鏈接的唯一方法是通過使用Open Graph(儘管我不確定這一點)。

所以,第一個問題是:這是要走的路嗎?

假設答案是「YES」,如何可以動態地更新動作的docID被HTML文檔的標題內定義的?只要點擊頁面內特定條目的分享按鈕,就必須進行此類更新。

如果對上一個問題的回答是「否」(意思是Open Graph不適合與參數共享鏈接),那麼實現這個的方法是什麼?

在此先感謝您的任何建議。

回答

0

一些工作之後,更多的問題應用程序了

var shareOnFacebook = function(type, autourl) { 
    FB.ui({ 
    method: 'share', 
    href: 'http://www.example.com/social/'+type+'/'+autourl, 
    }, function(response){ 

    console.log(response); 
    }); 
}; 

,並嘗試錯誤,我發現了一個解決方案,在here

描述
0

問題是,Facebook抓取工具,像大多數抓取工具一樣,不會評估頁面上的任何JavaScript,因此您將被第一頁上的初始標題卡住。

我之前用SPA處理過這個問題,但是創建一個服務器渲染的頁面只用於共享,那個頁面將會有相對的頭文件並且會重定向到我的應用程序。

在前端服務器端

<!-- do the logic to get the needed data and fill the needed tags --> 
    <meta property="og:title" content="{{$model->title}}" /> 
    <meta property="og:description" content="{{$model->description}}" /> 
    <meta property="og:image" content="{{$model->image}}" /> 

    <!-- after create a redirect--> 
    <meta http-equiv="refresh" content="0;url='http://www.example.com/{{$redirectHash}}"> 
+0

謝謝@ Sam1188的回覆。不幸的是,在這項業務中我太新了,無法完全理解**服務器渲染頁面**的含義。我明白你讓Angular填充正確的值(用'{{}}'來表示),但這是我所能達到的。你能提供一些關於如何創建這個頁面的更多細節嗎?另外,在JavaScript中,什麼和從哪裏獲得'type'和'autoutl'的值? – FDavidov

+0

服務器呈現= php頁面或您正在使用的任何服務器語言,{{}}在提供的示例中不是角度的,但它們是刀片式服務器。 – sam1188