2016-05-23 2 views
0

Мне нужно отправить сообщение из хром-упакованного приложения на веб-страницу за пределами приложения. У меня нет проблем отправки сообщений с веб-страницы, упакованного с помощью приложенияНеобходимо отправить сообщение с Chrome Packaged App на веб-страницу

chrome.runtime.sendMessage(extID,toSend, function(response) { 
    console.log("messag sent to " + extID); 
    if(response){ 
    console.log(response.received); 
    } 
    else { 
    console.log("no reply"); 
    }; 
}); 

я могу получить ответ обратно из упакованного приложения. Нет проблем. Но мне нужно продолжать отправлять информацию из приложения на страницу за единственным ответом.

Я попытался использовать этот код на стороне приложения:

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { 
    chrome.tabs.sendMessage(tabs[0].id, msg, function(response) { 
    console.log(response.farewell); 
    }); 
    }); 
} 

Но он не признает chrome.tabs в качестве действительного объекта. Когда я добавляю: «вкладки» в раздел разрешений manifest.json, он сообщает мне, что вкладки не поддерживаются в упакованных приложениях.

Итак, есть ли способ отправить сообщения из упакованного приложения Chrome на внешнюю веб-страницу за пределы простого ответа на сообщение, отправленное с самой страницы?

+0

хром-приложение или хром-расширение? –

+0

Моя программа - хром-приложение. Мне нужен доступ к последовательному порту, поэтому я не могу использовать расширение. –

ответ

0

Вам необходимо в манифесте externally_connectable включить домен веб-сайта, который вы отправляете, и вам нужно использовать chrome.runtime.onMessageExternal или chrome.runtime.onConnectExternal. Это все в documentation.

+0

Спасибо, kzahel. Я должен был уточнить, что у меня есть внешняя связь в манифесте, и я могу получать и отвечать на сообщения, отправленные на веб-страницу. Я также изучил использование runtime.connect и onConnectExternal, но документы, казалось, предполагали, что это работает только для расширений, а не для упакованных приложений. В любом случае, я пытаюсь отправить сообщение из приложения на веб-страницу, а не просто отвечать на сообщение, отправленное с веб-страницы. –

+0

Я имел в виду, что я могу получать и отвечать на сообщения, отправленные с веб-страницы в приложение. –

+0

Теперь поближе посмотрим на runtime.connect. Это может сработать. –