在Meteor中实施嵌入式分析

时间:2015-05-28 09:30:32

标签: javascript meteor embedly

我正在编写一个Meteor应用程序,该应用程序利用嵌入式嵌入向用户显示某些数据(链接,pdf)等。我想跟踪应用程序生成的嵌入调用次数。要做到这一点,embedly有自己的分析(http://embed.ly/docs/analytics/install)。

<script>
 (function(w, d){
   var id='embedly-platform', n = 'script';
   if (!d.getElementById(id)){
     w.embedly = w.embedly || function() {(w.embedly.q = w.embedly.q || []).push(arguments);};
     var e = d.createElement(n); e.id = id; e.async=1;
     e.src = ('https:' === document.location.protocol ? 'https' : 'http') + '://cdn.embedly.com/widgets/platform.js';
     var s = d.getElementsByTagName(n)[0];
     s.parentNode.insertBefore(e, s);
   }
 })(window, document);

 // This is the important line. You will need to insert your API KEY here.
 embedly('analytics', {key: '<Your Embedly Key>'});
</script>

我想帮助我如何编写这个脚本来处理meteor,因为它似乎不能作为辅助函数。我已经尝试使用此脚本创建一个.js文件,并使用Wait-on-Lib包加载它,也不会那样。

1 个答案:

答案 0 :(得分:3)

我只是将嵌入式集成到Meteor应用程序中,并认为他们的文档是垃圾。但是,经过深入挖掘后,我发现有几种方法可以使用它们的API。

最简单的方法是使用上面显示的platform.js代码,让他们的DOM观察者自动呈现card。您可以通过仅在页面上显示类embedly-card的标记来完成此操作,例如只需渲染模板即可。这将导致模板在渲染时变为iframe

<template name="urlEmbed">
    <a href="{{url}}"
       class="embedly-card"
       data-card-controls="0"
       data-card-chrome="0"
       data-card-height="200"
       data-card-width="100%">
        {{url}}
    </a>
</template>

然而,这基本上忽略了Meteor的渲染管道。如果您想要更多控制权,可以使用他们的jQuery plugin来控制呈现的时间和方式,可能会挂钩到模板的rendered回调中。这里有一些如何使用它的示例:http://embed.ly/docs/tutorials/inline

一般来说,您可以使用的命令和功能记录很少,在查询API时我甚至收到以下(非常混乱)消息:

  

没有platform.js的公共API。最相关的文档是我们的卡片文档:http://embed.ly/docs/products/cards,它将向您展示如何自定义卡片的使用。

然而,嵌入似乎是目前最好的服务,所以我会坚持一点,看看它是怎么回事。具有免费OSS组件的良好潜在替代方案是iframely