2017-05-29 17 views
2

browser.runtime.connect私のテストエコー拡張機能のコンテンツスクリプトとバックグラウンドスクリプトとの間の通信に問題があります。 githubにコードと拡張パッケージを公開しました。Microsoft Edgeのコンテンツスクリプトとバックグラウンドスクリプトとの通信

この拡張機能の簡単な説明。this GitHub test pageで拡張機能を実行できます。コンテンツスクリプトは、browser.runtime.connectを使用してバックグラウンドスクリプトに接続し、「送信」ボタンをクリックするとbrowser.runtime.Portオブジェクトを介してメッセージを送信します。バックグラウンドスクリプトはメッセージを受信し、それを大文字に変換して返します。その後、コンテンツスクリプトは変更されたメッセージを受信し、ページに表示します(受信メッセージフィールド)。

この拡張機能は、エッジにロード拡張子ボタンを使用して追加するとうまく動作します(Microsoft Edgeのドキュメントを参照)。したがって、のテストページをロードすると、「HELLO FROM BACKGROUND SCRIPT」テキストのメッセージフィールドが表示されます。

しかし だからあなたが試すことができ、この拡張機能は、パッケージからインストールされている場合は奇妙な問題、私はこの拡張の背景ページを開いて、テストページをリロードするまで...拡張子が...動作しませんがありますそれを再現:

  1. はオープ​​ン
  2. パッケージからテストページをこの拡張機能をインストールします。バックグラウンドスクリプトが正常に動作しません(受信メッセージフィールドは空です)。このスクリプトは送信メッセージを受け取りません。拡張機能のページを読み込んだり、\ offしても効果がありません。
  3. 公開背景ページこの拡張子。その後、このページが閉じられることがあります。
  4. リロード
  5. 拡張が正常に動作を開始し、テストページ...

:このテストの拡張子は私がすることができますMDN(申し訳ありませんに公開runtime.connect例に基づいているが、 3つ以上のリンクを挿入しないでください)。

この問題の解決にお役立てください。たぶん私はドキュメントで何かを見逃しました...

+0

私はappxパッケージでもこの問題に遭遇しました。手動で検査するまで、バックグラウンドページは読み込まれません。ここでバグを報告することをお勧めします。https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/ –

+0

@HaibaraAiコメントありがとうございます。今私は他の開発者が同じ問題を抱えていることを知っています。私は4日前にhttps://developer.microsoft。com/en-us/microsoft-edge/platform/issues/12156180 /まだ回答がありません...このプロセスは高速ではないようです。このバグを再現可能なものとしてマークできますか?あなたは**私も**ボタンを押すことができますか?たぶんこれは、このバグレポートの処理をスピードアップするのに役立ちます... –

+0

バグを起こしてくれてありがとう!私はそれをupvoted:) –

答えて

1

これは、拡張マニフェストの指定された永続フラグがfalseであるために設計されています。 Microsoft Edgeでは、バックグラウンドスクリプトの既定の動作は非永続的です。

+0

答えをありがとう!永続プロパティの値をtrueに設定しているので、パッケージからインストールされていても正しく機能します。しかし、まだ...非永続的なバックグラウンドページをロードする正しい方法は何ですか?たとえば、Google Chromeの場合、このページは新しい拡張機能のバージョンごとに1回読み込まれます。その後、登録されたイベント([documentation](https://developer.chrome.com/extensions/event_pages))のみを配信するためにロードされます。 –

関連する問題