2016-05-16 107 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