Chrome扩展程序 - 检测网址并执行应用程序

时间:2017-08-16 15:58:12

标签: javascript google-chrome google-chrome-extension

我知道使用基本的Chrome扩展程序,我们可以选择扩展程序可以使用的域(<all_urls>),但是当用户访问特定域时,是否可以执行应用程序(内部)?

我之前看过并看过&#34; Native Messaging&#34;。 (我目前正在研究算术)当我在工作实验室的网站上时,我希望我的扩展能够自动打开calc.exe。

我已经这样做了:

的manifest.json

{
    "name": "Mon extension",
    "version": "0.0.1",
    "background": {
        "scripts": [ "background.js" ]
    },
    "browser_action": {
        "default_title": "Ouvrir la calculatrice"
    },
    "permissions": [
        "nativeMessaging"
    ],
    "manifest_version": 2
}

但是我不明白如何管理javascript部分,有人能解释一下吗?

我的calc.bat的manifest.json:

{
    "name": "application",
    "description": "Lauching my app",
    "path": "C:\\Users\\root\\Documents\\calc.bat",
    "type": "stdio",
    "allowed_origins": [
        "chrome-extension://blfgmcilkaooeokpomhcpnfnhppjklcb"
    ]
}

Calc.bat只是:@echo off & start calc.exe

提前致谢。如果我的问题不够明确,请告诉我,我会修改它。

1 个答案:

答案 0 :(得分:1)

无法让你的工作,但我链接的例子工作得很好,所以开始编辑那个,最后得到了这个:

  • 下载sample host
  • 编辑native-messaging-example-host.bat并替换为:

    @echo off

    CALC.EXE

  • 运行install_host.bat

  • 在与主机文件夹相同的目录中创建名为app的文件夹
  • 创建3个文件:background.js,main.js,manifest.json

内容为:

<强> background.js:

chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){
    if (message.action == "open app") {
        chrome.runtime.connectNative("com.google.chrome.example.echo");
    }
});

<强> main.js:

chrome.runtime.sendMessage({action: "open app"}, function(response) {
    console.log(response);
});

<强>的manifest.json:

    {
      // Extension ID: knldjmfmopnpolahpmmgbagdohdnhkik
      "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcBHwzDvyBQ6bDppkIs9MP4ksKqCMyXQ/A52JivHZKh4YO/9vJsT3oaYhSpDCE9RPocOEQvwsHsFReW2nUEc6OLLyoCFFxIb7KkLGsmfakkut/fFdNJYh0xOTbSN8YvLWcqph09XAY2Y/f0AL7vfO1cuCqtkMt8hFrBGWxDdf9CQIDAQAB",
      "name": "Native Messaging Example",
      "version": "1.0",
      "manifest_version": 2,
      "description": "Send a message to a native application.",
      "content_scripts": [{
        "js": ["main.js"],
        "matches": ["<all_urls>"]
      }],
      "background": {
        "scripts": ["background.js"]
      },
      "permissions": [
        "nativeMessaging"
      ]
    }

最后,安装扩展程序。特别是每次打开/加载页面时都会打开calc.exe,这可以通过匹配轻松更改。

另一件需要注意的事情是,如果没有清单中的密钥,它似乎不起作用。