【问题标题】:Chrome Native Messaging API on MacMac 上的 Chrome 原生消息传递 API
【发布时间】:2015-07-08 23:55:45
【问题描述】:

我正在浏览 Chrome Native Messaging API 指南,

https://developer.chrome.com/extensions/nativeMessaging

示例主机的清单如下所示,

{
  "name": "com.my_company.my_application",
  "description": "My Application",
  "path": "C:\\Program Files\\My Application\\chrome_native_messaging_host.exe",
  "type": "stdio",
  "allowed_origins": [
    "chrome-extension://knldjmfmopnpolahpmmgbagdohdnhkik/"
  ]
}

“路径”指的是 Chrome 扩展程序将与之通信的应用程序。在 Windows 上,python 脚本或 exe 文件都可以工作并被执行。在 Mac OS 上,我只能使用 shell 脚本或 python 脚本。我无法执行 .app。

我无法工作的是,

"path": "/Applications/Skype.app"

当我在扩展程序中执行"chrome.runtime.connectNative(hostName)" 时,错误信息是“本机主机已退出”。感谢您的帮助!

【问题讨论】:

    标签: macos google-chrome-extension


    【解决方案1】:

    在 Windows 上,python 脚本或 exe 文件都可以工作并被执行。在 Mac OS 上,我只能使用 shell 脚本或 python 脚本。我无法执行 .app。

    .app 是一个目录,而不是一个文件。使用您的示例,Skype 的实际可执行文件可能位于 /Applications/Skype.app/Contents/MacOS/Skype

    在 Finder 中右键单击 .app 并选择“显示包内容”以查看内部。

    【讨论】:

    • 这不起作用。我已经更改为 /Applications/Skype.app/Contents/MacOS/Skype。当我执行 chrome.runtime.connectNative 时,扩展程序不会像在 Windows 上那样启动 Skype
    • 我的预期用例是,当 Skype 未打开时,我执行 chrome.runtime.connectNative 并且 Skype 将自动打开。 Windows 上的 Chrome 扩展程序可以做到这一点。
    • /Applications/Skype.app/Contents/MacOS/Skype 在终端工作吗?如果您需要做的只是启动 Skype,您可以从 shell 脚本中执行 open -b com.skype.skype
    • 这会起作用,我可以从命令行运行它,但我不想让扩展调用 shell 脚本,否则我的软件由扩展、shell 脚本和应用程序组成,这使软件的安全性降低。 shell脚本可能会受到攻击
    • 其实你知道吗?你说的对。我更改了“路径”,但我忘记安装 json。我安装后,它工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多