Esse recurso permite que você retorne ao assistente virtual a partir de um chat externo incorporado na janela principal, delegando assim o controle.
Para aplicá-lo, o seguinte código javascript deve ser adicionado ao chat externo.
function PostMessage () {
var originHost = '';
var source;
function handleMessage (event) {
var data = event.data;
originHost = event.origin;
source = event.source;
if (event.data.message) {
processMessage(event.data.message);
}
}
function processMessage (message) {
if (message === 'postmessage_support') {
var params = {'message' : 'postmessage_supported'};
source.postMessage(params, originHost);
}
}
this.back = function () {
if (source) {
source.postMessage({'message' : 'back_to_agentbot'}, originHost);
return true;
} else {
return false;
}
}
window.addEventListener('message', handleMessage, false);
};
var pm = new PostMessage();
Versão minificada:
function PostMessage(){var a,t="";this.back=function(){return!!a&&(a.postMessage({message:"back_to_agentbot"},t),!0)},window.addEventListener("message",function(s){s.data,t=s.origin,a=s.source,s.data.message&&(e=s.data.message,"postmessage_support"===e&&a.postMessage({message:"postmessage_supported"},t));var e},!1)}var pm = new PostMessage();
Método de retorno: com o objeto PostMessage corretamente inicializado, você pode executar o método que retorna ao assistente virtual da seguinte maneira
pm.back()
Esse código pode ser usado para executar a ação depois que uma condição for atendida, como fazer logout do bate-papo externo, seja por javascript ou em um simples botão html.
<button onclick="pm.back()">Back to agentbot</button>
As URLs para as quais ele é derivado devem ser definidas corretamente com seu protocolo, HTTP ou HTTPS. Observe também que, se o site for HTTPS, o chat externo também deverá ser compatível com o mesmo protocolo.