【发布时间】:2014-06-28 21:36:00
【问题描述】:
我正在为 Google Chrome 创建一个扩展程序,它将在 iTunes(本机应用程序)中开始和停止播放,获取有关其媒体库的信息等。操作发生在 Mac OS X 10.9.3 Mavericks 中。
我已经找到了 Chrome Runtime API,它有一些原生方法:
chrome.runtime.sendNativeMessage(.., .., ..)
chrome.runtime.connectNative(.., ..)
它们在developer.chrome.com 进行了描述。它们允许向本机应用程序发送某种“消息”。我已经成功地为 iTunes 创建了一个本地消息传递主机。首先我的尝试是connectNative(),但 iTunes 立即断开连接。然后我给它发送了一条随机消息(我在后台页面中发送):
chrome.runtime.sendNativeMessage(
host,
{text: "foo bar"},
function(response){
console.log(response);
// > Undefined
console.log(chrome.runtime.lastError.message);
// > "Native host has exited."
});
所以现在我遇到了两个问题:
- 我走对了吗?我正在尝试做的事情是否可能?
- 这些“消息”中究竟应该发送什么内容?
一般来说,我需要在媒体库中执行搜索、开始播放某首歌曲、打开某个流的能力——所有这些都是由不同的用户操作触发的。基本上,我可以创建辅助可可应用程序作为此扩展程序和 iTunes 之间的门,它可以完美地处理 iTunes 的所有问题,但我很确定这是一种矫枉过正的做法,并且存在一些方法可以在扩展程序内完成所有操作。
【问题讨论】:
标签: javascript macos google-chrome-extension itunes messaging