初めて質問させていただきます。
社内システム構築中にて、WEBアプリ(JavaScript)からネイティブアプリを起動したいと考えております。
サンドボックスの制限が厳しい中、Chromeの拡張機能で解決する方針となり、NativeMessagingを利用した以下のソースコードとレジストリ設定で、Chromeに表示されるボタンをクリックすることでメモ帳を起動するには至りました。
###manifest.json
{ "manifest_version": 2, "name": "NativeMessagingTest", "version": "0.0.0.1", "browser_action": { "default_title": "native" }, "background": { "scripts": ["background.js"], "persistent": false }, "permissions": ["nativeMessaging"] }
###background.js
chrome.browserAction.onClicked.addListener(function(){ var port = 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
こちらのページの次回記事に、まさにドンピシャなことが書かれる予定であったことが窺えるのですが、残念ながら書かれておられないようです。
よろしくお願い致します。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。