Google Chrome アプリケーションを開発していて、Java アプリケーションを起動する必要があります。(実際には、choosefile ポップアップなしでファイルを読み取って保存する必要があります)。
NPAPI ライブラリが非推奨になったため、代替手段を探し、「ネイティブ メッセージング ホスト」を使用して外部アプリケーションを起動することにしました。
最初の例を作成するために、シェル スクリプトを起動しようとしました。その方が簡単だと思うからです。ただし、スクリプトを起動できませんでした。私はLinuxで開発しています
マニフェスト ファイルはこのパスにあります
"/etc/opt/chrome/native-messaing-hosts/com.centeropenmiddleware.l3p1.xmleditor.json":
含まれるものは次のとおりです。
{
"name": "com.centeropenmiddleware.l3p1.xmleditor",
"description": "Saving a file",
"path": "/home/paco2/pp.sh",
"type": "stdio",
"allowed_origins": [
"chrome-extension://plfnjepfbddljeogeacemcpceiofapnm/"
]
}
アプリケーション ID は plfnjepfbddljeogeacemcpceiofapnm です。
スクリプトはファイルを作成します。
#!/bin/bash
echo hola mundo >> aaa
アプリケーション コードは次の行で失敗します。
try {
var port = chrome.runtime.connectNative ('com.centeropenmiddleware.l3p1.xmleditor')
} catch (e) {
console.log(e);
return;
}
キャッチされたエラーは
{
message : "Error connecting to native app: com.centeropenmiddleware.l3p1.xmleditor",
stack : "Error: Error connecting to native app: com.centeropenmiddleware.l3p1.xmleditor
at Object.<anonymous> (extensions::runtime:189:11)
at Function.target.(anonymous function) (extensions::SafeBuiltins:19:14)
at Object.handleRequest (extensions::binding:55:27)
at Function.target.(anonymous function) (extensions::SafeBuiltins:19:14)
at Object.<anonymous> (extensions::binding:318:32)
at saveas (chrome-extension://plfnjepfbddljeogeacemcpceiofapnm/js/editorRoutines.js:104:35)
at HTMLButtonElement.sendFileContentFromEditor (chrome-extension://plfnjepfbddljeogeacemcpceiofapnm/js/editorRoutines.js:89:27)"
}
アプリケーションを起動するには、これらのコマンドを使用しました
google-chrome --load-and-launch-app=/home/paco2/Projects/UPM/XMLEditor/XMLEditor/ --native-messaging-hosts="com.centeropenmiddleware.l3p1.xmleditor.json=/etc/opt/chrome/native-messaing-hosts/com.centeropenmiddleware.l3p1.xmleditor.json"
google-chrome --load-and-launch-app=/home/paco2/Projects/UPM/XMLEditor/XMLEditor/
安定したGoogle Chromeバージョン(34.0.1847.132)を使用しています
間違いはありませんか?