与Facebook分享动态更新元标签-角度6

时间:2018-12-21 10:23:00

标签: javascript angular

我需要动态更新og:title,og:description和og:image等元标记,并在Facebook上共享它们,我已经尝试了所有方法,但无济于事。

首先,我尝试使用如下所示的javascript设置元标记:

var meta = document.createElement('meta');
meta.httpEquiv = "X-UA-Compatible";
meta.content = "IE=edge";
document.getElementsByTagName('head')[0].appendChild(meta);

然后我尝试使用如下所示的角度元标记:

要添加:-

this.meta.addTag({ name: 'og:description', content: 'How to use Angular 6 meta service' });

要更新:-

this.meta.updateTag({ name: 'og:description', content: 'Angular 6 meta service' });

但是一切都失败了,最后我在meta包下面尝试了

https://github.com/vinaygopinath/ng2-meta

但是在将我的网站网址共享到Facebook 时,动态字段仍然存在问题,如果有人在发布后发布网址,它应该显示动态内容。

如果有人有主意,请告诉我!

1 个答案:

答案 0 :(得分:1)

您尝试过的所有方法都是在客户端进行的。您需要在这里了解一件事:当您在Facebook上共享URL时,它会向您的服务器发出请求,读取元标记,然后在facebook.com中更新卡。 JavaScript稍后发布。因此,无论您尝试使用哪种方法,如果它正在浏览器中执行,都将无法在此处使用。我建议您尝试以下方法之一:

使用Angular Universal的服务器端渲染,此渲染正是为此而构建的。该文档位于:https://angular.io/guide/universal。该解决方案的缺点是必须从节点服务器提供HTML页面。