2016-03-28 20 views
0

パートナーのウェブサイトからインラインインストールを使用してChrome拡張機能を配布したいと考えています。そして、私たちはそれがインストールされたウェブサイトの内線から知りたいと思います。 インストールプロセス中にパラメータを挿入して内線番号の中で受け取る方法はありますか? ありがとうございます。Chrome拡張機能にパラメータを渡す方法はありますか?

答えて

1

クロームインラインインストールAPIで直接行う方法はありませんが、少し足を踏み入れる必要があります。

  1. Chromeの拡張機能が正常にパートナーサイトであなたの拡張のための を完了したインストールするときに知っている能力:

    は基本的に、あなたは、2つのことが必要です。

  2. パートナーのサイトから、クロムにメッセージを送信するメカニズム 拡張機能。

1番目は簡単で、クロムインストールAPIの一部です。hereのように、インストールAPIにsuccessCallback関数を使用するだけです。

これで、インストールが行われたことを知っている時点で、拡張機能にURLを渡すことは複雑です。これを行う最も簡単な方法は、イベントデータのURLを含むカスタムJavaScriptイベントをノードに送信することです(文書はこれで問題ありません)。次に、拡張機能でこのカスタムイベントタイプのドキュメントをリスンすることができます。次に、イベントハンドラでURLを取得します。

しかし、それは簡単な部分です。あなたのコンテンツスクリプトは、あなたがインストールしたばかりのタブには載っていないという難点があります。あなたのエクステンションに、ページの読み込みごとにロードするコンテンツスクリプトがある場合は、のインストール後にすべてのページの読み込み時にだけ読み込まれます。あなたがインストールしたページは?あなたはそれをリフレッシュするまで、そのページを聞いてエクステンションを得ることはありません。

私はこれのためのいくつかの解決策を考えることができ、どれも素晴らしいものではありません。 最初に、パートナーサイトでURLに慣れても構わない場合は、拡張機能がインストールされたことを示すフラグが付いたハッシュ(既にハッシュがないものと仮定)を追加できます。次に、クロム拡張タブAPIを使用して、現在アクティブなウィンドウ内の現在アクティブなタブのURLを見つけることができます。あなたの拡張機能の読み込み時にそれを読んで、 "#extensionInstallId ="と言っていたら、この拡張機能がそのURLからインストールされたと仮定してそれを記録することができます。人がそのタブを開いたままにしておくと、ブラウザを再オープンしたときに偽陽性となり、1つしかないときに2つのインストールイベントが発生するため、これは間違いありません。私はあなたが拡張機能のためにlocalStorageにフラグを保存し、それが本当に最初にインストールされているかどうかを確認することさえできると思います。

第2に、thisのような処理を行います。それは新しいポップアップウィンドウを作成するためです(このイベントをあなたの内線に送る唯一の目的のためです)。

+0

ヒストリAPIを使用して、最近訪問したパートナーのURLを検索する方法もあります。 –

関連する問題