如何在两个Chrome应用之间传递数据?

时间:2014-11-05 09:49:48

标签: google-chrome google-chrome-app

我创建了两个Chrome应用,我想将一些数据(字符串格式)从一个Chrome应用传递到另一个Chrome应用。感谢是否有人可以帮我展示正确的方法?

1 个答案:

答案 0 :(得分:0)

这是一个RTFM问题。

来自Messaging documentation(请注意,它提到了扩展程序,但适用于应用程序):

  

除了在扩展程序中的不同组件之间发送邮件之外,您还可以使用邮件API与其他扩展进行通信。这使您可以公开其他扩展可以利用的公共API。

您需要使用chrome.runtime.sendMessage(使用应用ID)发送消息,并使用chrome.runtime.onMessageExternal事件接收消息。如果需要,还可以建立长期连接。

// App 1
var app2id = "abcdefghijklmnoabcdefhijklmnoab2";
chrome.runtime.onMessageExternal.addListener(
  // This should fire even if the app is not running, as long as it is
  //   included in the event page (background script)
  function(request, sender, sendResponse) {
    if(sender.id == app2id && request.data) {
      // Use data passed
      // Pass an answer with sendResponse() if needed
    }
  }
);

// App 2
var app1id = "abcdefghijklmnoabcdefhijklmnoab1";
chrome.runtime.sendMessage(app1id, {data: /* some data */},
  function(response) {
    if(response) {
      // Installed and responded
    } else {
      // Could not connect; not installed
      // Maybe inspect chrome.runtime.lastError
    }
  }
);