質問: chrome.runtime.connectNative('host1'); }); ``` ### host.json ``` { "name": "host1", "description": "NativeMessagingTest", "path": "(メモ帳のパス)", "type": "stdio", "allowed_origins": ["chrome-extension://(拡張機能ID)/"] } ``` その後「WEBアプリのページを開いたら自動で起動するように」との要望があり、WEBアプリ側のJavaScriptから起動を試みたのですが、どうも上手くいきません(イベントのリスニングはできているが着火できていない?)。各種参考資料を読む限り、仕様上可能だとは思うのですが、最新の仕様ではどうなのかも、自信がなくなってきました。 ### 試したこと background.js側のイベントリスナーをchorome.runtime.onMessageやchorome.runtime.onConnectに変え、WEBアプリのJavaScriptからイベントの着火を試みましたが、リスニングはできているっぽいのですが、届いていないような感じがしています(コンソールに何の出力もないため、感覚の話になって申し訳ないのですが......)。 ### 参考ページ http://qiita.com/suin/items/5e1aa942e654bce442f7 こちらのページの次回記事に、まさにドンピシャなことが書かれる予定であったことが窺えるのですが、残念ながら書かれておられないようです。 よろしくお願い致します。
回答: すいません、全然やったことないのですが、面白そうと思って読みながらちょっとだけ調べたこと書きます。 > その後「WEBアプリのページを開いたら自動で起動するように」との要望があり こんなことできたら何でもありで危ないんじゃないかと思ったのが最初の印象です。 で、NativeMessaging というのになったんですね。 いろいろな記事を読む限り、その方法で Google ChromeでトレイからCDを排出できるブラウザ拡張をつくりました(Native messaging版) なんてことやってる人もいるので可能なのかなとは思いますが、「WEBアプリのページを開いたら・・・」に関しては、はっきり分かりません。 あと、データのやりとりはJSONだけみたいな記述もありますが、この辺の制限は問題無いでしょうか? 長くなりましたが、解答欄に書こうと思ったのは、このページ にデバッグの方法が載っていて > コンソールに何の出力もないため とおっしゃってるのでこの方法試してみてないのでは無いかなと思って書いてます。 何かの参考になればです。