2

我正在编写一个 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>

我想要一些关于如何编写这个脚本来使用流星的帮助,因为它似乎不能作为辅助函数工作。我已经尝试使用此脚本创建一个 .js 文件并使用 Wait-on-Lib 包来加载它,但也不是这样。

4

1 回答 1

3

我刚刚将嵌入集成到 Meteor 应用程序中,并且还认为他们的文档是垃圾。然而,经过一番挖掘,我发现有几种方法可以使用他们的 API。

使用上面显示的platform.js代码,最简单的方法是让他们的 DOM 观察程序自动呈现卡片。您可以通过使带有类的标签embedly-card出现在页面上来做到这一点,例如通过简单地呈现模板。这将导致模板变成iframeon 渲染。

<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 插件来控制渲染发生的时间和方式,可能与模板的rendered回调挂钩。这里有一些如何使用它的例子:http: //embed.ly/docs/tutorials/inline

不过,一般来说,您可以使用的命令和函数的文档记录很差,甚至在查询 API 时,我还收到了以下(非常令人困惑的)消息:

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

但是,embedly 似乎是目前最好的服务,所以我会坚持一段时间,看看效果如何。具有免费 OSS 组件的一个很好的潜在替代方案是iframely

于 2015-07-23T15:34:45.293 回答