我创建了两个Chrome应用,我想将一些数据(字符串格式)从一个Chrome应用传递到另一个Chrome应用。感谢是否有人可以帮我展示正确的方法?
答案 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
}
}
);