2

特定のデータ (リンク、pdf) などをユーザーに表示するために埋め込み埋め込みを利用する Meteor アプリケーションを作成しています。アプリケーションが生成する埋め込み呼び出しの数を追跡したいと考えています。そのために、組み込みには独自の Analytics ( 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 パッケージを使用してそれをロードしましたが、その方法でも機能しません。

4

1 に答える 1

3

私はMeteorアプリに埋め込んで統合したばかりで、それらのドキュメントもくだらないと思います. しかし、少し調べてみると、API を使用する方法がいくつかあることがわかりました。

上で示したplatform.jsコードを使用する最も簡単な方法は、DOM ウォッチャーにカードを自動的にレンダリングさせることです。embedly-cardテンプレートをレンダリングするだけで、class を含むタグをページに表示するだけでこれを行うことができます。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 プラグイン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 に答える