从GWT调用chrome扩展API

时间:2014-04-08 11:26:59

标签: java google-chrome gwt google-chrome-extension

我需要从GWT前端发送消息到chrome扩展。为此,我在GWT中使用JSNI并调用以下方法:

static native void sendMessageToChromeExtension() /*-{
    chrome.runtime.sendMessage(...);
}-*/;

然而,这不起作用,我得到了:

Cannot read property 'sendMessage' of undefined

还有其他办法吗?

2 个答案:

答案 0 :(得分:1)

网页通常通常调用chrome API(inline install除外)。

要实现您的目标,您需要遵循here概述的程序。 假设你的前端生活在http://example.com/,那么你需要在扩展的清单中声明你期望来自这个域的消息:

"externally_connectable": {
    "matches": ["*://*.example.com/*"]
}

只有这样chrome.runtime.sendMessage才会显示在网页上。请注意,您还需要提供扩展程序的ID。

答案 1 :(得分:1)

我发现了一个问题,我需要从 $和(窗口)对象调用 chrome 。以下作品:

static native void sendMessageToChromeExtension() /*-{
    $wnd.chrome.runtime.sendMessage(...);
}-*/;